Promise
参阅: http://es6.ruanyifeng.com/#docs/promise
promise 有三种状态,
-
pending
-
fulfilled
完成 -
rejected
出错
新建 promise 对象
新建 promise 对象的时候,传递两个方法 resolve
reject
作为参数,这两个方法是系统已经存在的,直接用就可以了。
resolve
用于将 promise 状态设置成 fulfilled
reject
用于将 promise 状态设置成 rejected
const promise = new Promise(function(resolve, reject) {
// ... some code
if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
设置相应状态的操作
promise 通过 .then ()
来执行后续操作,成功或失败。
.then()
里面传递两个参数,都是方法,第一个是当状态为 fufilled
时调用的方法,第二个是当状态为 rejected
调用的。
let promise = document.documentElement.requestFullscreen();
promise.then(
success => {console.log(success)},
error => {console.log(error)},
)
还有一种写法,用 .catch()
接收错误时的返回值并作相关处理,对应成功时的 .then()
promise .then(data => { // 成功时的操作})
.catch(error => { // 出错时的操作})
promise.all()
接收 promise 数组作为参数,返回一个新的 promise 对象,当参数中所有 promise 都为 fufilled
状态时,才返回 fulfilled
状态; 当任一个状态为 rejected
时,这个 promise 状态就为 rejected