84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
比如var arry = [...];arry.forEach(function(elem){
//异步函数
})
//下一步
业精于勤,荒于嬉;行成于思,毁于随。
可以使用Promise:
Promise
var arry = [...]; Promise.all(arry.map(function(elem){ return new Promise(function(resolve, reject){ ... resolve(result); }) })).then(function(data){ //在这就可以等所有的返回结果可以得到 })
或者
var arry = [...]; var counter = 0; arry.forEach(function(elem){ //异步回调中 counter++; if(counter === arr.length){ //在这执行所有执行的完后的 } })
感觉你这个表述还是同步的意思,异步函数不应该阻塞下一步的。
你可以看下这个问题
搬运下代码
function callback () { console.log('all done'); } var itemsProcessed = 0; [1, 2, 3].forEach((item, index, array) => { asyncFunction(item, () => { itemsProcessed++; if(itemsProcessed === array.length) { callback(); } }); });
async
Github: async文档: async-Docs
const async = require('async'); async.each( ['file1', 'file2', 'file3'], (item, callback) => { setTimeout( () => { console.log('item:', item); callback(null); }, 1000 ); }, () => { console.log('done'); } );
可以使用
Promise
:或者
感觉你这个表述还是同步的意思,异步函数不应该阻塞下一步的。
你可以看下这个问题
搬运下代码
使用
async
库Github: async
文档: async-Docs