Node.js npm opn - 无法获得回调函数

时间:2016-04-04 20:39:42

标签: javascript node.js callback npm

我正在尝试使用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上运行它,模块需要明确指定应用程序才能等待)。

我希望在浏览器关闭后通过回调运行代码。

我对节点很陌生,所以非常感谢任何见解!

1 个答案:

答案 0 :(得分:1)

该模块似乎没有最新的文档

// myscript.js
var Model = bookshelf.Model.extend({
  tableName: 'models'
});

Model.forge({name: 'hello'}).save().then(function(model) {

  console.log('model has been saved', model);

}).catch(function(error) {

  // it's bad practise to omit some sort of error reporting.
  console.error('something went wrong!');

}).finally(function() {

  // tear down connection.
  return bookshelf.knex.destroy();

}).then(function () {

  // This is the actual 'end' of the program.
  console.log("End");

});

上述工作,使用了一个可靠的承诺模式而不是一个回调。

您应该在github存储库中报告此内容。

更新:ES6版本:

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);
});