Promise入门

2019-04-22  本文已影响0人  Coldhands

Promise是什么

按照用途来解释

异步回调

回调有四个问题

Promise简介

初始化一个Promise实例
new Promise(
  /* 执行器 executor */
  function (resolve, reject) {
    // 一段耗时很长的异步操作
    resolve(); // 数据处理完成
    reject(); // 数据处理错误  
  }
).then(function A() {
  // 成功,下一步
}, function B() {
  // 失败,做相应处理
})
Promise详解
Promise有三个状态:
  1. pending [待定] 初始状态(创建实例时,new Promise)
  2. fulfilled [实现] 操作成功(调用resolve)
  3. rejected [被否决] 操作失败(调用reject)
    Promise状态发生改变,就会触发.then()里的响应函数处理后续步骤。
    Promise状态一经改变,不会再变。

Promise实例一经创建,执行器立即执行。

假如一个Promise已经完成,再.then() 会怎样?

console.log('start');

let promise  = new Promise(resolve => {
  setTimeout(() => {
    console.log('the promise fulfilled');
    resolve('hello world');
  }, 1000)
})

setTimeout(() => {
  promise.then(value => {
     console.log(value)
  })
}, 3000)

// start
// the promise fulfilled
// hello world

假如在.then() 的函数里面不返回新的Promise,会怎样?

.then()

上一篇 下一篇

猜你喜欢

热点阅读