我很难理解敏捷,这里有两个问题:
1 - 我在下面有一个很小的测试代码,几乎直接从nimble的在线教程中复制。我没有在那里使用任何复杂的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 - 从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才能在敏捷中使用_吗?但敏捷表示,它的一个卖点是它很小,不需要导入异步和下划线。然后我在这里再次感到困惑..
答案 0 :(得分:0)
问题1:
nimble.series()需要在每个函数中调用cb()来告诉它继续下一个函数。这就是为什么你的第二个功能在第一个功能的cb()输出后没有被执行的原因
问题2:
是的,在使用它之前需要导入下划线,就像使用灵活的
一样var _ = require('下划线');