sindresorhus / open

Open stuff like URLs, files, executables. Cross-platform.
MIT License
3.14k stars 213 forks source link

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

Open MathijsVerbeeck opened 1 year ago

MathijsVerbeeck commented 1 year ago

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

milanholemans commented 1 year ago

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.

MathijsVerbeeck commented 1 year ago

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