对Promise的简单理解

什么是promise:异步编程代码的一种方式
 let p = new Promise((resolve, reject) => {
  // 作一些事情
  // 而后在某些条件下resolve,或者reject
  if (/* 条件随便写^_^ */) {
    resolve()
  } else {
    reject()
  }
})

p.then(() => {
    // 若是p的状态被resolve了,就进入这里
}, () => {
    // 若是p的状态被reject
})

调用.then能够为实例p注册两种状态回调函数
当实例p的状态为fulfilled,会触发第一个函数执行
当实例p的状态为rejected,则触发第二个函数执行
promise的做用:
如今假设有多个异步任务,且任务间有依赖关系(一个任务须要拿到另外一个任务成功后的结果才能开始执行)的时候,回调的方式写出来的代码就会像下面这样:
 getData1(data1 => {
  getData2(data1, data2 => {
    getData3(data2, data3 => {
      getData4(data3, data4 => {
        getData5(data4, data5 => {
          // 终于取到data5了
        })
      })
    })
  })
})
promise改写一下:
getData1()
    .then(getData2)
    .then(getData3)
    .then(getData4)
    .then(getData5)
    .then(data => {
      // 取到最终data了
 })
 
3种状态:
promise实例有三种状态:
pending(待定)
fulfilled(已执行)
rejected(已拒绝)

promise的内容分为构造函数、实例方法和静态方法
1个构造函数: new Promise
2个实例方法:.then 和 .catch
4个静态方法:Promise.all、Promise.race、Promise.resolve和Promise.reject
复制代码
相关文章
相关标签/搜索