Promise的then、catch、finally、async、await

1、then、catch、finally

对于Promise一直使用async、await,而对它的then、catch、finally这三个方法都快忘了怎么用了。

  1. then
    接收两个方法作为参数,第一个参数是成功的回调,第二个参数是失败的回调。
  2. catch
    相当于 then(undefined, onRejected)
    catch方法拥有一个参数
  3. finally
    finally 方法用来指定在 promise 结束时,无论结果是 fulfilled 或者是 rejected,都会执行的回调函数
    finally 方法的回调函数不接受任何参数

在Promise中如果没有用resolve或reject改变Promise的状态,那么,
在then中将不能调用成功回调、也不能调用失败回调
在catch中的错误回调也调不到
在finally中的回调也调不到。

2、async、await

  1. 使用async和await,那么在函数中一定要确保被resolve或者reject掉。否则函数一直处于await状态,那么就会一直阻塞在这里,走不下去。
  2. 使用await只能获取到resolve的值,而reject的值是获取不到的。
    假设fa是一个异步函数,
let a=await fa(n).catch(()=>{});

那么当fa中reject时,就会走到catch中的回调中去,这个回调是一个空函数,相当于return undefined;
那么await得到的就是这个undefined。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值