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:

reject:

 

 

three seperate Promises:

 

 

 

 

 

 

Promise.all[ xxx,xxx,xxx]:(xxx为promise对象) 

Promise.all(iterable) 方法返回一个 Promise 实例,此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve);如果参数中  promise 有一个失败(rejected),此实例回调失败(rejecte),失败原因的是第一个失败 promise 的结果。

 

Promise.race:

Promise.race(iterable) 方法返回一个 promise ,并伴随着 promise对象解决的返回值或拒绝的错误原因, 只要 iterable 中有一个 promise 对象"解决(resolve)"或"拒绝(reject)"。

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

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

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

 

 

posted @ 2018-05-10 18:55  hh9515  阅读(139)  评论(0编辑  收藏  举报