Es6 async 函数

图片来源于网络

1、 async函数返回一个 Promise 对象。

async function f() {
  return 'hello world';
}

f().then(v => console.log(v))
// "hello world"

2、async函数内部抛出错误,会导致返回的 Promise 对象变为reject状态。抛出的错误对象会被catch方法回调函数接收到。

async function f() {
  throw new Error('出错了');
}

f().then(
  v => console.log(v),
  e => console.log(e)
)
// Error: 出错了

3、只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数。

//网络请求
function request(){
    return $.ajax({
        url:"./data.json",
        type: 'post',
        dataType: 'json',
        success: function (data, status) {
            return data
        },
        fail: function (err, status) {
            return err
        }
    })
}

async function getData(){
    let rquery = await request()
    return rquery
}


// 调用
    getData().then(
        v => console.log(v),
        e => console.log(e)
    )

4、如果我们希望即使前一个异步操作失败,也不要中断后面的异步操作。这时可以将第一个await放在try...catch结构里面,这样不管这个异步操作是否成功,第二个await都会执行。

参考文摘: https://www.cnblogs.com/zczhangcui/p/6642144.html

你可能感兴趣的:(Es6 async 函数)