Skip to the content.

Promise

Promise 是 NodeJS 社区中诞生的产物

Promise 是一个对象,用来传递异步操作的消息。它表示某个未来才会知道结果的事件(通常是异步操作)

var p = new Promise((resolve, reject) => {
  window.setTimeout(() => {
    resolve(123);
  }, 1000);
});

p.then((data) => {
  console.log("p success", data);
});

//=> p success 123

Promise 算是一种控制反转

Promise 就是实现这种反转的工具

缺点:回调链冗长

相关 API

Promise 构造函数

Promise (excutor) {} excutor 会在 Promise 内部立即同步回调,异步操作在执行器中执行


Promise.prototype.then 方法

(onResolved,onRejected) => {} 成功或者失败的回调,返回一个新 Promis 对象


Promise.prototype.catch 方法

(onRejected) => {} 失败的回调函数


Promise.resolve 方法

(value) => {} 返回一个成功/失败的 promise 对象


Promise.reject 方法

(reason) => {} 返回一个失败的 promise 对象


Promise.all 方法

(promises) => {} promises:包含 n 个 promise 的数组,返回一个新的 promise, 只有所有的 promise 都成功才成功, 只要有一个失败了就直接失败


Promise.race 方法

(promises) => {} promises:包含 n 个 promise 的数组,第一个完成的 promise 的结果状态就是最终的结果状态


.

参见