1-1状态
三种状态pending、fulfilled、rejected
var p = new Promise((resolve,reject)=>{})var f = new Promise((resolve,reject)=>{resolve(10);})var r = new Promise((resolve,reject)=>{reject(20)})
1-2 状态的变化
状态的变化是不可逆的
pending--->fulfilledvar p = new Promise((resolve,reject)=>{setTimeout(()=>{resolve(10);},2000)})
pending-->rejectedvar r = new Promise((resolve,reject)=>{setTimeout(() => {reject(20)}, 2000);})
1-3 触发时状态的转变
reslove then -->触发后的结果是promise状态是fulfilledreject catch-->触发后的结果是promise,状态fulfilled
var p = Promise.resolve(10);var r = Promise.reject(10);// console.log(p);var result = p.then(res=>{console.log(res);})console.log(result);var result02 = r.catch(res=>{console.log(res);})console.log(result02);
1-4 then和catch返回值状态的变化
(1)pending—>resolve
var p = Promise.resolve(100).then(res=>{console.log(res);})console.log(p); //Promise fulfilled
(2)then函数中报错,返回值的状态为rejected
var p = Promise.resolve(100).then(res=>{// console.log(res);throw "error"})// console.log(p); //Promise fulfilled
(3)then函数返回值报错的处理
var p = Promise.resolve(10).then(res=>{console.log(res);throw "error"})/*p Promise rejected*/var res = p.then(()=>{console.log("20");}).catch(res=>{console.log(res)})console.log(res)
(4)catch之后报错处理
var r = Promise.reject(10).catch(res=>{console.log(res); //10throw "error";})r.then(()=>{console.log(200);}).catch(err=>{console.log(err);})
