回调内的异步操作

时间:2015-12-11 16:07:30

标签: javascript node.js

如上所述,当事件pause触发时,我想以异步方式执行一系列操作。但如果我这样做,我认为addon的回调永远不会回来。

//(...)
client.on('stream', function(stream, meta) {
    //(....)
    stream.on('pause', function () { 
        addon.calculate_results_async(stream, client.id, function(results, stream) {
            stream.write(results); //send the results
        });
    });
});

首先,我对插件的beahviour是对的吗?第二,如果我是对的,在这种情况下我怎能calculate_results_async

1 个答案:

答案 0 :(得分:2)

异步操作似乎发生了错误。

Promise.all([your stuff]).then(function() {
  // all loaded
}, function() {
  // one or more failed
});

或者

您可能忘记在异步

中解决承诺
var promise = new Promise(function(resolve, reject) {
  // do a thing, possibly async, then…

  if (/* everything turned out fine */) {
    resolve("Stuff worked!");
  }
  else {
    reject(Error("It broke"));
  }
});