Promise

169 阅读1分钟

promise对象用于表示一个异步操作的最终完成(或失败)及其结果值。

创建new Promise

function fn(){
     return new Promise((resolve, reject)=>{
         成功时调用 resolve(数据)
         失败时调用 reject(错误)
     })
 }
 fn().then(success, fail).then(success2, fail2)

promise对象接收一个函数作为参数。任务成功调用resolve(result),失败了调用reject(error),

.then( )方法返回一个promise。它最多需要有两个参数:成功和失败情况的回调函数。成功在前,失败在后。写给resolve或者reject调用的。

Promise.all

 Promise.all([promise1, promise2]).then(success1, fail1)   

 promise1和promise2都成功才会调用success1

Promise.race

Promise.race([promise1, promise2]).then(success1, fail1)

promise1和promise2只要有一个成功就会调用success1;
promise1和promise2只要有一个失败就会调用fail1;
总之,谁第一个成功或失败,就认为是race的成功或失败。