|
總是會看到Promise,一直不知道具體是干嘛用的,學習一下~~~ 1、異步async&同步sync 首先需要了解一下同步和異步。 同步模式,一次只能執(zhí)行一個任務,函數(shù)調(diào)用后需等到函數(shù)執(zhí)行結束,返回執(zhí)行的結果,才能進行下一個任務。如果這個任務執(zhí)行的時間較長,就會導致「線程阻塞」。 異步模式,即與同步模式相反,可以一起執(zhí)行多個任務,函數(shù)調(diào)用后不會立即返回執(zhí)行的結果,如果任務A需要等待,可先執(zhí)行任務B,等到任務A結果返回后再繼續(xù)回調(diào)。 定時器就是一個典型的異步模式,異步任務會在當前腳本的所有同步任務執(zhí)行完才會執(zhí)行。 2、Promise
//構建Promise
var promise = new Promise(function (resolve, reject) {
if (/* 異步操作成功 */) {
resolve(data);
} else {
/* 異步操作失敗 */
reject(error);
}
});
類似構建對象,我們使用
Promise實例生成以后,可以用
promise.then(onFulfilled, onRejected);
promise.then(function(data) {
// do something when success
}, function(error) {
// do something when failure
});
簡單來說, function resolveFun(data) {
//data為promise傳出的值
}
而新建Promise中的'resolve(data)',則相當于執(zhí)行resolveFun函數(shù)。 var promise = new Promise(function(resolve, reject) {
console.log('before resolved');
resolve();
console.log('after resolved');
});
promise.then(function() {
console.log('resolved');
});
console.log('outer');
-------output-------
before resolved
after resolved
outer
resolved
由于 |
|
|