sindresorhus/open

Issue: Windows not opening browser or any client application without `wait: true` or setting a long timeout

MathijsVerbeeck opened this issue · 2 comments

Hi

I am currently having an issue when using open when simply opening a URL on Windows. I use the following code:

const open = require('open');
const result = await open('https://google.be/');

This will run the code, but the browser will not open. I have noticed that, when the code takes longer to execute, by for example adding a for loop that takes +- 5 seconds to run, that the browser will in fact open and it will work.

I have also noticed, that by adding { wait: true }, it will also start working, but that is not an option because when testing it on my macbook it will explicitly wait until the entire Chrome process has closed.

Is there any chance that you could have a look at this?

Thanks!
Mathijs

Giving some more context here, we are trying to use open in an async function.

The code looks something like this:

public async commandAction()Promise<void> {
   ...
   const open = require('open');
   await open('https://google.com/');
}

The problem is that we promise of our function is being resolved before the browser opens. Due to this, the browser will actually never open.

If we add some time consuming tasks after await open(...) is called, the browser will open after a few seconds.

Thank you for your help.

@sindresorhus Do you have any idea / update regarding this?