快捷搜索: 王者荣耀 脱发

在另一个async 函数调用 async 函数

async 函数返回的是一个promise对象,所有在另一个async函数调用 使用await, 等上一个async函数异步执行结束之后再执行后面代码

const sleep = (ms) => {
          
   
    return new Promise((resolve, reject) => {
          
   
        setTimeout(resolve, ms);
    })
}

const test1 = async () => {
          
   
    for (let i = 0; i < 5; i++) {
          
   
        console.log(i);
        await sleep(1000);
    }
    return test1;
}

const test2 = async () => {
          
   
    console.log(test2);
    await test1().then(res => {
          
   
        console.log(res)
    });
    console.log(test2_end)
}

test2();
console.log(page_end)

输出结果

// test2   
// 0       
// page_end
// 1
// 2
// 3
// 4
// test1
// test2_end

async函数内部return语句返回的值,会成为then方法回调函数的参数, 如上test1函数返回 ‘test1’, 如没有return,then方法回调函数的参数为undefined

经验分享 程序员 微信小程序 职场和发展