async和await

async和await

1.async基本用法
async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。
例如:①

async function myFunc(){
    return "Hello World!";
 }
console.log(myFunc());

控制台打印结果:
在这里插入图片描述
②返回错误信息

async function myFunc(){
    const  promise = new Promise((resolve,reject) => {
        setTimeout(() => resolve('Hello World!'),2000)
    })
    //错误信息
    const error = true;   
    如果是true则会返回错误信息,
    如果是false,两秒之后会返回正确信息  Hello World!
    if(!error){
        //等待resolve执行完毕之后,才会执行
        const res = await promise;
        return res;
    }else{
        await Promise.reject(new Error("error:报错了!"));
    }
}
myFunc()
    .then(data => console.log(data))
    .catch(err => console.log(err));

2.await基本用法
await命令后面是一个 Promise 对象,返回该对象的结果。如果不是 Promise 对象,就直接返回对应的值。

async function f() {
  // 等同于
  // return 123;
  return await 123;
}

f().then(v => console.log(v))
// 123

上面代码中,await命令的参数是数值123,等同于return 123

②await命令后面的 Promise 对象如果变为reject状态,则reject的参数会被catch方法的回调函数接收到

async function f() {
  await Promise.reject('出错了');
}

f()
.then(v => console.log(v))
.catch(e => console.log(e))
// 出错了

这里在await前面加上return,效果是一样的。

③任何一个await语句后面的 Promise 对象变为reject状态,那么整个async函数都会中断执行

async function f() {
  await Promise.reject('出错了');
  await Promise.resolve('hello world'); // 不会执行
}

④前一个异步操作失败,后面的异步操作也不会中断。将第一个await放在try...catch结构里面,这样不管这个异步操作是否成功,第二个await都会执行

async function f() {
  try {
    await Promise.reject('出错了');
  } catch(e) {
  }
  return await Promise.resolve('hello world');
}

f()
.then(v => console.log(v))
// hello world
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值