Promise
是异步操作对象,可以返回成功或失败。
创建一个Promise:
new Promise(function(resove, reject){
resove('a');
})
// 也可以写成
const promise = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'foo');
});
// 或者
const promise1 = Promise.resove(1);
// 或者
const promise2 = 42;
// 或者
function fc(resolve, reject){
resove('b');
}
const promise3 = new Promise(fc);
Promise.all()
在所有Promise
结束后resolve
Promise.all([promise , promise1, promise2, promise3]).then((values) => {
console.log(values);
});
链式调用
Promise
链:
连续执行两个或者多个异步操作,在上一个操作执行成功之后,开始下一个的操作,并带着上一步操作所返回的结果。
then()
函数会返回一个和原来不同的新的Promise
doSomething().then(function(result) {
return doSomethingElse(result);
})
.then(function(newResult) {
return doThirdThing(newResult);
})
.then(function(finalResult) {
console.log('Got the final result: ' + finalResult);
})
.catch(failureCallback);
参考文档
MDN Promise
廖雪峰-Promise