Luc*_*nto 7 javascript node.js
我想在foreach完成后执行回调,但它不能正常工作.我怎么能这样做?
var response = [];
myArray.forEach(function(data) {
data.asyncFunction(function(result) {
response.push(result);
});
}, function() {
console.log(response); // Not being called.
});
console.log(response); // (Empty) Executed before foreach finish.
Run Code Online (Sandbox Code Playgroud)
Ano*_*oop 10
因为forEach只接受一个callback.由于您在内部调用异步方法forEach,因此需要检查是否所有asyn调用都已完成
var response = [];
myArray.forEach(function(data, index) {
data.asyncFunction(function(result) {
response.push(result);
if(response.length === myArray.length) {
//foreach work done
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19784 次 |
| 最近记录: |