js async/await 用法和理解

122 阅读1分钟

博客园 js async/await

async

// 调用async定义的function时; 返回值==普通函数返回值||Promise对象resolve的值
// async定义的function, 执行后返回值是个promise,可以直接then操作
    async function fun0() {
        console.log(1)
        return 1
    }
    
    fun0().then( x => { console.log(x) })  //  输出结果 1, 1,
    
    async function funp() {
        console.log('Promise')
        return new Promise(function(resolve, reject){
            resolve('Promise')
        })
    }
    
    funp().then( x => { console.log(x) })   // 输出promise  promise

await

// await 关键字 只能放在 async 函数内部
// 获取的是Promise函数中resolve||reject的值 或者 普通函数的返回值
    const bbb = function(){ return 'string'}

    async function funAsy() {
    const a = await 1
    const b = await new Promise((resolve, reject)=>{
            setTimeout(function(){
            resolve('time')
            }, 3000)
    })
    const c = await bbb()
    console.log(a, b, c)
    }

    funAsy()  //  运行结果是 3秒钟之后 ,输出 1, time , string,