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 新建后就会立即执行