私は配列を反復するasync.eachを持っていて、配列内のすべての要素に対して内部で要求を持つ関数 "check"を実行します。これはコードですが、実行すると、ノードがチェック機能を実行せず、実行をブロックすることがデバッガからわかります。nodejsでasync.each内のリクエストの実行を強制する方法は?
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);
});
Iループの通常と試みたが、それは、ノードの非同期性質をinternals.check機能を実行することなくinternals.calls関数にジャンプ。だから私はどのようにチェック機能の実行を強制することができますか?
これは、チェック機能のコードです:
internals.check = (url,array2,cb) => {
request(url, function(err, recordset) {
if(err){
cb(array2);
}else {
//some stuffs
cb(array2)
}
});
};
おかげで、私はこれを追加しましたが、何も変わっていないと、すべての上に、私は問題を解決しませんでした...それはチェック機能を実行しません。 –
答えを更新しました。あなたは 'internals.check'関数にバグがあります。 – alexmac
ok私はコールバックのバグを修正しましたが、デバッガからはチェック関数の中に入ることがわかりました。要求に達すると関数の最後にジャンプし、コールバックcbは表示されません。私はこれが問題だと思います。 –