Promise对象
Promise 是异步编程的一种解决方案。
一个容器 ,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
语法上说,Promise 是一个对象,从它可以获取异步操作的消息 。
实例
const promise = new Promise(function(resolve, reject) {
// ... some code
if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
-
Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由 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 新建后就会立即执行