入门Promise的用法

new Promise(function(resolve,reject){
resolve();  //数据处理完成
reject();   //数据处理出错
}).then(function A(){
   //成功下一步
},function B(){
   //出错做对应处理
});
Promise 三个状态;(每一个then都会返回新的一个Promise实例)
pending  //待定 初始状态

fulfilled  //实现 操作成功

rejected  //否决 操作失败
-----------------------------------------------------------------
let a = 10;
let promise = new Promise(function(resolve,reject){
  if(a==10){
    resolve("成功")
  }else{
   reject("失败")
  }

})
promise.then(res=>{
  console.log(res)
},err=>{
  console.log(err)
})

promise.catch(err=>{
   console.log(err)
})

简写:
new Promise((resolve,reject)=>{
   //做什么
}).then(res=>{
   console.log(res)
}).catch(err=>{
   console.log(err)
})
等价指令:
Promise.resolve("xxx")将现有的东西转成一个promise对象;resolve成功状态;
等价
new Promise((resolve)=>{
   resolve("xxx")
})
Promise.reject("xxx")将现有的东西转成一个promise对象;reject失败状态;
等价
new Promise((resolve,reject)=>{
   reject("xxx")
})
-----------------------------------------------------------------
Promise.all([x1,x2,x3])
例子:
let promise1 = Promise.resolve("aa")
let promise2 = Promise.resolve("bb")
let promise3 = Promise.resolve("cc")
Promise.all([promise1,promise2,promise3]).then(res=>{
   console.log(res)  //[aa,bb,cc]
   let [res1,res2,res3] = res; //es6解构;
   console.log(res1,res2,res3)
}).catch(err=>{
   console.log(err)
})
all必须确保所有promise对象都是resolve状态;
let promise1 = Promise.reject("aa")
let promise2 = Promise.reject("bb")
let promise3 = Promise.resolve("cc")
Promise.race([promise1,promise2,promise3])只要有一个成功的就返回;//一般也不会用到

 

posted @ 2018-04-03 18:29  鱼樱前端  阅读(1020)  评论(0编辑  收藏  举报