0

我很难理解灵活,这里有两个问题:

1 -- 我在下面有一个很小的测试代码,几乎是直接从 nimble 的在线教程中复制而来的。我没有在其中使用任何复杂的异步函数,只是出于简单的原因使用了一个 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 -- 从 nimble 的教程中,似乎可以方便地使用下划线 (_)。试了下面的代码,网上直接复制的,只是被告知_没有定义..

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

大概是我搞错了。我应该先导入 underscore.js,然后才能灵活地使用 _ 吗?但nimble表示它的一个卖点是它很小,不需要导入异步和下划线。然后在这里我又糊涂了。。

4

1 回答 1

0

问题一:

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

问题2:

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

var _ = 要求('下划线');

于 2014-04-20T11:48:27.463 回答