Promise

网上都写了很多这类代码,我只记录我当前想记录,后续整理。

const demo = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve("成功的回调");
  }, 1000);
});
const demo1 = demo.then(() => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("成功的回调2");
    }, 1000);
  });
});

demo1的状态是由then回调函数return方法的返回值来决定的。

1 一定要注意Promise内部的状态是否被改变了,如果没有,那么是不会执行then方法的

2 在Promise中,返回任意一个非 promise 的值都会被包裹成 promise 对象,例如return 2会被包装为return Promise.resolve(2)。

3 .then 或 .catch 返回的值不能是 promise 本身,否则会造成死循环

4 .then 或者 .catch 的参数期望是函数,传入非函数则会发生值透传

5 .finally方法也是返回一个Promise,他在Promise结束的时候,无论结果为resolved还是rejected,都会执行里面的回调函数。

6 Promise.all() Promise.race() 不管状态如何变更都不影响执行完所有的Promise

7 await 返回的是一个Promise对象,那么他后面的代码执行要等到执行微任务时候执行    

8 刚产生的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值