如何for循环一个异步的函数呢?
发布于 6 年前 作者 pingkang 2720 次浏览 来自 官方Issues
// 2s 之后返回双倍的值
function doubleAfter2seconds(num) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(2 * num)
        }, 2000);
    } )
}
 
async function testResult() {
    let result = await doubleAfter2seconds(30);
    console.log(result);
}
 
testResult();

// 返回结果: 60

如果说希望循环输出结果,for应该怎么写呢?希望的结果如下:

第1次循环:60

第2次循环:60

第3次循环:60

第4次循环:60

1 回复

解决了:感谢大佬 @

再分享一个:用 async/await 来处理异步

// 2s 之后返回双倍的值
function doubleAfter2seconds(num) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(2 * num)
        }, 2000);
    } )
}
 
async function testResult() {
    for(i = 0; i <= 5; i++){
        let result = await doubleAfter2seconds(30);
        console.log(i);
        console.log(result);
    }
}
 
testResult();
回到顶部