84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
比如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