我有一个 async.each 迭代一个数组,并且对于数组中的每个元素,它执行一个函数“check”,里面有一个请求。这是代码,但是当我运行它时,我从调试器中看到节点没有执行检查功能并且它阻止了它的执行。
async.each(array,
function(v_page, callback){
if(v_page.url.length>=5){
internals.check(v_page.url,array2, function (body) {
callback();
});
}
},
function(err){
internals.calls(var1,var2,var3);
});
我尝试了一个普通的 for 循环,但它跳转到 internals.calls 函数,而不执行 internals.check 函数来实现节点的异步性质。那么我怎样才能强制执行检查功能呢?
这是检查功能的代码:
internals.check = (url,array2,cb) => {
request(url, function(err, recordset) {
if(err){
cb(array2);
}else {
//some stuffs
cb(array2)
}
});
};