中断promise链式调用(中间返回一个pendding状态的promise)

对照组

    new Promise((resolve, reject) => {
        reject(1) //失败状态
      })
      .then(value => {
        console.log('成功', value);
      }, reason => {
        console.log('失败', reason); // 失败 1,没有返回值;                               
      })                            //默认返回一个成功状态、默认值为undefined的promise实例对象
      .then(value => {
        console.log('成功hhh', value);
      }, reason => {
        console.log('失败', reason);
      })

    //打印结果
    // 失败 1
    // 成功hhh undefined

实验组

 //中断promise(中间返回一个pendding状态的promise)
    new Promise((resolve, reject) => {
        reject(1) //失败状态
      })
      .then(value => {
        console.log('成功', value);
      }, reason => {
        console.log('失败', reason); // 失败 1
        return new Promise(function (res, rej) {
          //返回一个pendding状态的promise,中断后面的链式调用 (比对照组在这里增加一个返回状态为pendding的promise实例对象)
        })
      })
      .then(value => {
        console.log('成功hhh', value);
      }, reason => {
        console.log('失败', reason);
      })

    //打印结果
    // 失败 1 (由于中间增加一个返回状态为pendding的promise实例对象,后面的链式调用被阻断)
posted @ 2020-11-21 20:03  17135131xjt  阅读(519)  评论(0编辑  收藏  举报