Promise的通知方法参数是另外一个Promise对象

情景:
小米的妈妈告诉小米,小米的表姐小娥要去香港,小米的妈妈让小娥带点货。这段通话被同宿舍的小东听到了,小东刚好想买一双球鞋,听说香港的便宜,所以想让小米的表姐帮他带货

情景1: 小米同意了,小娥也同意了

const xiaoe = new Promise((resolve, reject) => {
   resolve("我是小娥,我同意了")
 })
 // 返回了xiaoe,后面的then是对象p2状态的处理
 const xiaoming = new Promise((resolve, reject) => {
   //小米同意了
   resolve(xiaoe)
 }).then(
   value => {
     console.log(value + ",成功")
   },
   reason => {
     console.log(reason + ",拒绝")
   }
 )

在这里插入图片描述

情景2:小米同意了,小娥因为要帮很多人拿东西,,拒绝了

const xiaoe = new Promise((resolve, reject) => {
   reject("我是小娥,我拿不了很多东西,我拒绝了")
 })

 // 如果resolve参数是一个promise,将会改变promise的状态
 const xiaoming = new Promise((resolve, reject) => {
   //小米同意了
   resolve(xiaoe)
 }).then(
   value => {
     console.log(value + "。小东有买到球鞋")
   },
   reason => {
     console.log(reason + "。小东没有买到球鞋")
   }
 )

在这里插入图片描述

情景3: 小米跟表姐不是很熟,不想麻烦她,拒绝了小东

const xiaoe = new Promise((resolve, reject) => {
   resolve("我是小娥,我同意了");
   // reject("我是小娥,我拿不了很多东西,我拒绝了");
 })

 // 如果reject参数是一个promise(xiaoe),该promise(xiaoe)不会处理
 //直接作为参数传递给xiaoming的then拒绝处理方法
 const xiaoming = new Promise((resolve, reject) => {
   //小米拒绝了
   reject(xiaoe)
 }).then(
   value => {
     console.log(value + "。小东有买到球鞋")
   },
   reason => {
     console.log(reason + "。小东没有买到球鞋")
   }
 )

在这里插入图片描述

图解
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值