Promise

20181101補充:
Promise A+規範:
https://promisesaplus.com/
 
Promise的語法:
new Promise(resolve,reject){
 
   。。。。執行代碼
   
}.then (onFulfilled, onRejected)
 
 
 
let promiseToCleanTheRoom = new Promise(function(resolve,reject){


//cleaning the room

let isClean = false;

if(isClean){
resolve('Clean');
}else{
reject('not Clean');
}

});

promiseToCleanTheRoom.then(function(fromResolve){

console.log('the room is' + fromResolve);
 
}).catch(function(fromReject){

console.log('the room is' + fromReject);
});
 
 

 

resolve:promise

reject:異步

 

 

three seperate Promises:3d

 

 

 

 

 

 

Promise.all[ xxx,xxx,xxx]:(xxx爲promise對象) code

Promise.all(iterable) 方法返回一個 Promise 實例,此實例在 iterable 參數內全部的 promise 都「完成(resolved)」或參數中不包含 promise 時回調完成(resolve);若是參數中  promise 有一個失敗(rejected),此實例回調失敗(rejecte),失敗緣由的是第一個失敗 promise 的結果。對象

 

Promise.race:blog

Promise.race(iterable) 方法返回一個 promise ,並伴隨着 promise對象解決的返回值或拒絕的錯誤緣由, 只要 iterable 中有一個 promise 對象"解決(resolve)"或"拒絕(reject)"。three

var promise1 = new Promise(function(resolve, reject) {
setTimeout(resolve, 500, 'one');
});ip

var promise2 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, 'two');
});get

Promise.race([promise1, promise2]).then(function(value) {
console.log(value);
// Both resolve, but promise2 is faster
});
// expected output: "two"it

 

相關文章
相關標籤/搜索