入门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])只要有一个成功的就返回;//一般也不会用到