Promise对象

本文是笔者学习Javascript的一些笔记。

Posted by 南三号 on July 24, 2018

Promise对象

Promise 是异步编程的一种解决方案。

一个容器 ,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

语法上说,Promise 是一个对象,从它可以获取异步操作的消息 。

实例

const promise = new Promise(function(resolve, reject) {
  // ... some code

  if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});
  • Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolvereject。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。

  • Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。

    promise.then(function(value) {
      // success
    }, function(error) {
      // failure
    });
    
  • API:

    • Promise.prototype.then()
    • Promise.prototype.then()
    • Promise.prototype.finally()
    • Promise.all()
      • Promise.all方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。

特点

  • 对象的状态不受外界影响。

    • pending(进行中)
    • fulfilled(已成功)
    • rejected(已失败)
  • 一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected

注意

  • Promise 新建后就会立即执行

other: