这样就显得清爽了许多,更重要的是,它更符合人的线性思维模式,开发体验也更好。
两种技术结合产生了 链式调用 的效果。
这解决的是多层嵌套的问题,那另一个问题,即每次任务执行结束后 分别处理成功和失败 的情况怎么解决 的
呢?
Promise 采用了 错误冒泡 的方式。其实很简单理解,我们来看看效果:
readFilePromise('1.json').then(data =>
{ return readFilePromise('2.json');
}).then(data => {
return readFilePromise('3.json');
}).then(data => {
return readFilePromise('4.json');
}).catch(err => {
// xxx
})
这样前面产生的错误会一直向后传递,被 catch 接收到,就不用频繁地检查错误了。
解决效果
实现链式调用,解决多层嵌套问题
实现错误冒泡后一站式处理,解决每次任务中判断错误、增加代码混乱度的问题