Promise
Promise要解决的问题:JS是一种单线程语言,有些操作必须异步实现,多个异步任务嵌套起来,会陷入回调地狱,代码层层嵌套,程序变得难以维护。
以下内容摘自 廖雪峰的官方网站 JavaScript教程-Promise
1.Promise最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了:
2.Promise还可以做更多的事情,比如,有若干个异步任务,需要先做任务1,如果成功后再做任务2,任何任务失败则不再继续并执行错误处理函数。要串行执行这样的异步任务,不用Promise需要写一层一层的嵌套代码。有了Promise,我们只需要简单地写:
job1.then(job2).then(job3).catch(handleError);
3.除了串行执行若干异步任务外,Promise还可以并行执行异步任务,用Promise.all()
实现
var p1 = new Promise(function (resolve, reject) {
setTimeout(resolve, 500