如何灵活地在nodejs中工作?

时间:2013-12-31 17:26:03

标签: node.js flow-control nimble

我正在尝试理解如何使用nimble对nodejs进行流量控制,但我无法理解它是如何工作的,并且确实没有解释它的文档(我能找到)

例如,从文档中获取此代码:

_.parallel([
    function (callback) {
        setTimeout(function () {
            console.log('one');
            callback();
        }, 25);
    },
    function (callback) {
        setTimeout(function () {
            console.log('two');
            callback();
        }, 0);
    }
]);

我无法理解函数采用的回调参数,实际作为回调传递的内容是什么?下一个功能在行?如果是这种情况,那么为什么第二个(也是最后一个)函数也会运行callback()?如果没有更多的功能可以运行那么这有什么意义呢?谢谢!

我做了自己的小测试并取出了回调:

var flow = require('nimble');

flow.parallel([
function() {
    setTimeout(function() {
        console.log('this happens');
    }, 3000);
},
    function() {
        setTimeout(function() {
        console.log('and this happens at the same time');
    }, 3000);
}
]);

代码的工作方式与传入回调的方式相同,所以现在我觉得我真的不明白回调算法的作用。

1 个答案:

答案 0 :(得分:1)

  

我无法理解函数采用的回调参数,实际作为回调传递的内容是什么?

回调是为了确认异步操作已完成。你不需要知道回调的作用,只需要知道它作为参数接受的内容。

它被称为继续传递。 =>给定一个函数,并将回调作为参数,一旦执行回调将“继续”控制流正在进行的操作。

如果异步操作不成功,您最终可能会将错误对象作为第一个参数传递给回调以产生错误。您可能希望查看npm上的异步包,以便进一步解释此事。