寫在前面:作為入門級菜鳥,當項目切了環境用上node,vue,es6的時候,發現要學習理解的東西還有太多,之前連Promise是個啥都不知道。
翻了翻書上說 Promise是抽象異步處理對象以及對其進行各種操作的組件,略抽象看不懂是不是啊~於是請教了大神
簡單說就是:每一個異步請求立刻返回一個Promise對象,由於是立刻返回,所以可以采用同步操作的流程。而Promise的then方法,允許指定回調函數,在異步任務完成后調用。
下面的setTimeout()可以代替理解為一個ajax請求:
function a () {
return new Promise (function(resolve, reject) {
setTimeout(function () {
console.log('執行任務a');
resolve('執行任務a成功');
}, 1000);
});
}
function b () {
return new Promise(function (resolve, reject){
setTimeout(function(){
console.log('執行任務b');
resolve('執行任務b成功');
}, 2000);
});
}
function c () {
console.log('最后執行c')
}
// 只有在a成功執行了之后,才執行b,在b成功執行了之后再執行C(誰先請求執行誰~)
a().then(b()).then(c());
