概述:
是一种异步解决方案,解决了地狱回调问题
特点:
三种状态:pending(进行中),fulfilled(已成功)和rejected(已失败)
只有pending变为fulfilled 和 pending变为rejected状态改变
只要处于fulfilled和rejected状态就不会再变了。
实例:
const ps = new Promise(function(resolve,reject){
resolve('suc1')
resolve('suc2')
})
const ps1 = new Promise(function(resolve,reject){
reject('fail')
resolve('suc3')
})
ps.then(function(val){
console.log(val) //suc1
})
ps1.then(function(val){
console.log(val) //Promise {<rejected>: 'fail'}
})
地狱调用既链式调用
const p = new Promise(function(resolve,reject){
resolve(100);
}).then(function(value){ // 第一个then // 100
console.log(value);
return value * 200;
}).then(function(value){ // 第二个then // 200
console.log(value);
}).then(function(value){ // 第三个then // undefined
console.log(value);
return Promise.resolve('resolve');
}).then(function(value){ // 第四个then // resolve
console.log(value);
return Promise.reject('reject');
}).then(function(value){ // 第五个then //reject:reject
console.log('resolve:' + value);
}) .catch(error => console.log(error));