我在 node.js 中使用step模块来获取串行执行,但它没有按预期工作。
代码
//sample
var goalSteps = [1:{"goal":"faq","page:"faq"},2:{"goal":"offers","page:"offers"}];
var goalConversion = [];
var length = goalSteps.length;
step(
function getData() {
var scope= this;
for(var i =0; i < length ;i++){
var filter = goalSteps[i];
//get data from database[mongodb]
scope.getData(filter,function(res){
console.log("result",res);
goalConversion[i] = res;
if(length-1 == i){
this.call();
}
});
}
},
function final(err, goal) {
console.log("step2",goalConversion);
}
);
结果
Step2 []
在执行getData函数之前,执行了最终函数。
场景- 按照我的期望流动
我想循环
goalSteps
并从 mongodb 获取数据。将结果推送到
goalConversion
数组。在得到所有基于
goalSteps
.goalConversion
在最终功能中控制台。
任何帮助都会非常有用。具有类似场景的步骤模块的任何示例也很棒。