在Node.js中,如何使用node-seq顺序链接异步函数?

时间:2013-12-21 01:26:28

标签: javascript node.js asynchronous

今天我一直在玩@suback的node-seq模块,它允许我将异步函数链接在一起。

https://github.com/substack/node-seq

我使用并行功能,但无法顺序运行功能。每当我运行以下代码时,它只打印出'hello1'语句。我有什么想法吗?

var Seq = require('seq');

Seq()
    .seq(function () {
        console.log('hello1');
    })
    .seq(function () {
        console.log('hello2');
    })
;

感谢您的任何建议!

1 个答案:

答案 0 :(得分:4)

您只需要read the documentation

  

每个方法都使用下一节中描述的上下文(其this)执行回调。每个方法都返回this

     

每当使用非虚假的第一个参数调用this()时,错误值会向下传播到它看到的第一个catch,跳过其间的所有操作。在所有链的末尾都有一个隐式catch打印错误堆栈(如果可用),否则只打印错误。

this可以解决您的问题。

var Seq = require('seq');

Seq()
    .seq(function () {
        console.log('hello1');
        this();
    })
    .seq(function () {
        console.log('hello2');
    })
;

否则Seq无法知道步骤何时完成。