码迷,mamicode.com
首页 > 编程语言 > 详细

javascript 循环中调用异步的同步需求

时间:2020-02-11 19:31:38      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:turn   wait   process   string   ons   foreach   proc   roc   asc   

// 关于Promise:可以直接使用promise
Promise.resolve(123).then(v => {
    console.log(v)
})

// 循环中调用异步
let arr = []
new Promise((res, rej) => {
    for (let index = 0; index < 5; index++) {
        new Promise((resolve, reject) => {
            resolve(index)
        })
        .then((i) => {
            arr.push(index)
        })
    }
    res()
}).then(() => {
    console.log(arr)
})


// -----

// async/await 版本 循环(forEach)中调用异步
async function processArray(array) {
    if(toString.call(array) != '[object Array]'){
        console.log(array)
        return
    }
    array.forEach(async (item) => {
        await processArray(item);
    })
    console.log('Done!');
}
processArray(['a', 'b', 'c'])

// 结果:像同步一样的预期结果
// a
// b
// c
// Done!

javascript 循环中调用异步的同步需求

标签:turn   wait   process   string   ons   foreach   proc   roc   asc   

原文地址:https://www.cnblogs.com/CoderMonkie/p/js-async-in-loop.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!