2

我正在尝试了解如何使用灵活的 nodejs 进行流量控制,但我无法理解它的实际工作原理,并且确实没有文档可以解释它(我可以找到)

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

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

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

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

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

而且代码的工作方式就像我传入了回调一样,所以现在我觉得我真的不明白回调参数的作用。

4

1 回答 1

1

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

回调用于确认异步操作已完成这一事实。你不需要知道回调做什么,只需要知道它接受什么作为参数。

这称为延续传递。=> 给定一个函数和一个作为参数的回调,一旦执行,回调将“继续”负责控制流的任何事情。

如果异步操作不成功,您最终可能会将错误对象作为第一个参数传递给回调以产生错误。您可能想查看 npm 上的 async 包以获取有关此问题的进一步说明。

于 2013-12-31T18:02:19.110 回答