我正在尝试使用opn包使回调函数正常工作(这里是文档:https://github.com/sindresorhus/opn)。

简而言之,我想通过浏览器打开一个特定的URL,等待用户关闭浏览器,然后运行回调函数。当我运行我的代码时,一切似乎都按预期工作,但是,它似乎没有运行回调(我从没在控制台中看到“工作”过)。

这是我正在尝试执行的一些示例代码:

var opn = require('opn')opn('http://www.google.com', {app: 'firefox', wait: true}, function(err) { if(err) throw err console.log('worked')})

它似乎确实在等待(注意,我正在Windows上运行它,该模块需要显式指定一个应用程序才能等待)。

关闭浏览器后,我想通过回调运行代码。

我是Node的新手,因此非常感谢您的见解!

最佳答案

该模块似乎没有最新文档

var opn = require('opn');
opn('http://www.google.com', {
    app: 'Chrome',
    wait: true
}).then(function(cp) {
    console.log('child process:',cp);
    console.log('worked');
}).catch(function(err) {
    console.error(err);
});


上面的作品,使用了一个可行的承诺模式,而不是回调。

您应该在github仓库上报告这个。



更新:ES6版本:

import opn from 'opn';
opn('http://www.google.com', {
  app: 'Chrome',
  wait: true
}).then(cp => console.log('child process:', cp)).catch(console.error);

07-25 21:43