promise

文章详细介绍了Promise在JavaScript中的作用,它是事件循环中的微任务,解释了pending、fulfilled和rejected状态,以及resolve和reject方法的用法。通过两个示例展示了Promise链中的返回值传递机制。
摘要由CSDN通过智能技术生成

promise 属于事件循环的微任务,具体详见:事件循环

Promise 语法:

const p1 = new  Promise((reslove,reject)=>{
    console.log(2);
    reslove(1)
}).then((data)=>{
  console.log(3);
   console.log(data)
}).catch((data)=>{
  console.log(3);
})

promise.then(() => {
  return Promise.resolve(2);
}).then((n) => {
  console.log(n)
});
 
  • pending: 在过程中
  • fulfilled: 已经解决了
  • rejected:被拒绝了,失败了 

不执行 resolve() 和 reject() ,promise 状态一直是 pending 状态

Promise.resolve() 返回 fulfilled 状态的 promise => then()

Promise.reject() 返回 rejected 状态的 promise => catch()

状态一经生成,不会改变;

resolve() 和reject() 里的参数就是对于 then 和 catch 里的参数;then() 和catch() 只要没有报错,返回的都是fulfilled 状态的promise

题目一:

var promise = new Promise(function(resolve, reject){
  setTimeout(function() {
    resolve(1);
  }, 3000)
});
promise.then((data) => {
  console.log(data, "data")
  return Promise.resolve(2);
}).then((n) => {
  console.log(n)
});
 

 

题目二:

var promise = new Promise(function(resolve, reject){
  setTimeout(function() {
    resolve(1);
  }, 3000)
});
promise.then((data) => {
  console.log("data",data)
  return 2
}).then((n) => {
  console.log(n)
});

 return的值将作为 then 方法返回的 promise 的 resolve 的值传递出,console将打印出2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值