promise
在多层嵌套回调时,写完的代码层次过多,很难进行维护和二次开发
- 洗菜做饭。
- 坐下来吃饭。
- 收拾桌子洗碗。
正确
let state = 1; function step1(resolve, reject) { console.log("1.洗菜做饭"); if (state == 1) { resolve("洗菜做饭完成") } else { reject("洗菜做饭--出错") } } function step2(resolve, reject) { console.log("2.坐下来吃饭"); // state = 3; if (state == 1) { resolve("坐下来吃饭完成") } else { reject("坐下来吃饭--出错") } } function step3(resolve, reject) { console.log("3.收拾桌子洗碗"); if (state == 1) { resolve("收拾桌子洗碗完成") } else { reject("收拾桌子洗碗--出错") } } new Promise(step1).then( function (val) { console.log(val); return new Promise(step2) } ).then(function (val) { console.log(val); return new Promise(step3) }).then( function (val) { console.log(val); return val } )
错误
state = 3