co()完成之前的延迟

时间:2016-06-07 14:29:50

标签: node.js co

我尝试用co制作一些节点脚本。它运作良好,但在脚本完成之前有很大的延迟。 (我得到了#34;好的"或者"坏"一秒后,但脚本在它之后7秒完成)。我错过了什么?

.done

2 个答案:

答案 0 :(得分:0)

运行代码时出现typeError。我不确定你在那里尝试做什么,但我认为在调用co()时你不能将错误处理程序作为第二个参数传递,你必须使用then()或catch()来进行错误处理。

// Here's an example
co(function*() {
  var result = yield Promise.resolve(true);
  return result;
}).then(function(value) {
  console.log(value);
}, function(err) {
  console.error(err.stack);
});

// you can also catch the error
co(function *(){
  // yield any promise 
  var result = yield Promise.resolve(true);
}).catch(onerror);
function onerror(err) {
  // log any uncaught errors 
  // co will not throw any errors you do not handle!!! 
  // HANDLE ALL YOUR ERRORS!!! 
  console.error(err.stack);
}

答案 1 :(得分:0)

我认为process.exit()会解决您的问题。