敏捷流量控制工具中的回调和下划线

the callback and underscore in nimble flow-control tool

本文关键字:回调 下划线 流量控制 工具      更新时间:2023-09-26

我很难理解敏捷,这里有两个问题:

1--我在下面有一个很小的测试代码,几乎是从敏捷的在线教程直接复制的。我在那里没有使用任何复杂的asyn函数,只是出于简单的原因使用了console.log。

var nimble = require('nimble');
nimble.series([
    function(cb) {
        console.log("first");
        cb();
    },
    function(cb) {
        console.log("second");
        cb();
    }
]);

它按承诺工作,但回调(cb)有什么意义?从代码来看,我似乎从未将任何内容作为cb传递给该系列中的任何一个函数。

然后我尝试了代码的修改版本。基本上,它会删除所有回调。

var nimble = require('nimble');
nimble.series([
    function() {
        console.log("first");
    },
    function() {
        console.log("second");
    }
]);

遗憾的是,它只输出"第一个",而没有输出"第二个",所以它在某个地方是错误的,不确定为什么。现在我很困惑这个回调到底是什么,以及为什么我们必须要它

2--根据敏捷的教程,似乎可以方便地使用下划线(_)。我尝试了下面的代码,它是直接在网上复制的,但我只是被告知_没有定义。。

var nimble = require('nimble');
_.series([
    function (callback) {
        setTimeout(function () {
            console.log('one');
            callback();
        }, 25);
    },
    function (callback) {
        setTimeout(function () {
            console.log('two');
            callback();
        }, 0);
    }
]);

可能是我做错了什么。在敏捷中使用_之前,我应该导入undercore.js吗?但敏捷表示,其卖点之一是体积小,不需要导入async和下划线。然后我又困惑了。。

问题1:

series()需要在每个函数中调用cb()来告诉它转到下一个函数。这就是为什么你的第二个函数在从中取出第一个函数的cb()后没有被执行的原因

问题2:

是的,下划线在使用前需要导入,就像使用灵活的一样

var=require('underscore');