• promise使用方法


    代码报错会走向失败时的回调

    1 let p = new Promise((resolve, reject) => {
    2   throw new Error("我错了"); //会失败
    3 })
    4 
    5 p.then((data) => {
    6   console.log(data)
    7 }, (err) => {
    8   console.log(err) // 执行这个方法
    9 })

    执行reject会走向失败时的回调

    let p = new Promise((resolve, reject) => {
      reject("我错了") //会失败
    })
    
    p.then((data) => {
      console.log(data)
    }, (err) => {
      console.log(err) // 执行这个方法
    })

    执行resolve会执行成功时的回调

    let p = new Promise((resolve, reject) => {
      resolve("我对了") // 会成功
    })
    
    p.then((data) => {
      console.log(data) // 执行此方法
    }, (err) => {
      console.log(err) 
    })

    不执行的情况

    let p = new Promise((resolve, reject) => {
      console.log("不知道");
    })
    
    p.then((data) => {
      console.log(data) // 不执行
    }, (err) => {
      console.log(err)  // 不执行
    })

    链式调用可以返回普通值

    let p = new Promise((resolve, reject) => {
      resolve("执行1")
    })
    
    p.then((data) => {
      return "执行2"
    }).then((data) => {
      return "执行3"
    }).then((data) => {
      console.log(data) //执行3
    })

    链式调用可以返回promise

    let p = new Promise((resolve, reject) => {
      resolve("执行1")
    })
    
    p.then((data) => {
      return new Promise((resolve, rejext) => {resolve("执行2")})
    }).then((data) => {
      return new Promise((resolve, rejext) => {resolve("执行3")})
    }).then((data) => {
      console.log(data) //执行3
    })

    链式调用也可以不返回任何值直接到达下一步

    let p = new Promise((resolve, reject) => {
      resolve("执行1")
    })
    
    p.then((data) => {
      // 跳过我吧!
    }).then((data) => {
      return new Promise((resolve, rejext) => {resolve("执行3")})
    }).then((data) => {
      console.log(data) //执行3
    })

    手写一个promise:https://github.com/wuxianqiang/promise

  • 相关阅读:
    浅析一类要求相邻不同的环上染色问题
    中国剩余定理(CRT)及其扩展(ExCRT)
    bsoj5988 [Achen模拟赛]期望 题解
    涂色游戏 题解
    [JZOJ A组]球 题解
    由 [SDOI2012]Longge的问题 探讨欧拉函数和莫比乌斯函数的一些性质和关联
    [NOIP模拟]文本编辑器 题解
    Nilearn 小记
    django 开发笔记1
    浅谈无需工作量证明的加密货币
  • 原文地址:https://www.cnblogs.com/wuxianqiang/p/8407419.html
Copyright © 2020-2023  润新知