Promise

Promise状态
pending resolved rejected
调resolve函数会进入成功状态
调rejected函数或报错会进入失败状态
api
Promise.all Promise.race Promise.resolve Promise.reject是函数对象方法
.then .catch是实例对象方法
.then返回值

  1. 返回非promise的值,则下一个promise变为resolved值为.then返回值
  2. 抛出异常,则下一个promise变为rejected,值为抛出的异常
  3. 返回promise的值,此promise结果为新promise结果
  4. 如果是同步任务可以直接return,如果有异步任务则需要返回一个promise
                Promise.resolve(2)
                .then(x => {
                    console.log(x); // 输出2,也就是上面resolve参数值
                    return 'hello'; // 回调函数返回字符串类型
                })
                .then(x => {
                    console.log(x); // 输出hello,也就是上一个then回调函数返回值,表明上一个then的返回值就是下一个then的参数
                    // then函数回调函数中没有返回值
                }) 
                .then(x => {
                    // 前面的then的回调函数没有返回值所以这个x是undefined
                    console.log(x); // undefined
                }) 
                .then(() => {
                    return Promise.resolve('hello world');
                })
                .then(x => {
                    console.log(x); // hello world
                }); 

async和await

async fn(){
      // return 1(进入成功的回调)
      // throw new Error(进入失败的回调)
      // return Promise.resolve(1)(进入成功的回调)
}
const res=fn()
res.then(v=>{},err=>{})

async返回值是一个Promise,类似.then作用

await右边如果是Promise对象,得到的结果就是Promise成功的结果
await右边如果不是Promise对象,得到的就是它本身
如果想得到失败的结果值,则必须通过try catch实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值