promise对象

2018-10-19  本文已影响0人  梦里coding

1、基本用法

ES6 规定,Promise对象是一个构造函数,用来生成Promise实例。

下面代码创造了一个Promise实例。

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

  if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});

Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。
其中resolve函数的作用是promise对象请求成功后的调用方法,如果有参数将会传递出去,reject函数的作用是promise对象请求失败后的调用方法,如果有参数将会传递出去。
Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。

promise实现多层嵌套

const p1 = new Promise(function (resolve, reject) {
  // ...
});

const p2 = new Promise(function (resolve, reject) {
  // ...
  resolve(p1);
})

其中p1和p2都是promise实例,而p2的resolve方法将p2做为参数,即一个异步结果返回另一个异步操作,这样就实现了promise的异步嵌套。

new Promise((resolve, reject) => {
  resolve(1);
  console.log(2);
}).then(r => {
  console.log(r);
});
// 2
// 1
上一篇 下一篇

猜你喜欢

热点阅读