promise的基本使用,promis链式调用,promise.all
什么是 promise
promise 是ES6 的内置对象,是一种异步解决方案,本质上是一个构造函数
特点:
1、promise 有3状态 pending(进行中)resolve(成功) reject(失败)只有异步操作的结果能决定他的状态,其他的任何操作不能改变他的状态
2、状态变化:pending(进行中) > resolve(完成)
pending(进行中) > reject (失败)
3、调用:then() 方法接收 resolve 的值
catch() 方法接收 reject 的值
1、基本使用
promise是异步编程的一种非常优秀的解决方案,平常的情况下为了执行异步操作最为常见的就是AJAX异步操作,层层嵌套陷入回调地狱。就算是不层层嵌套,可能也会用到把第一个操作的结果赋值给一个变量,然后第二个异步操作去拿变量的值,但是这样子并太理想,所以promise就完美解决了这一尴尬局面。
上代码:


2、promise链式调用:可以避免层层调用,代码逻辑更清晰
链式调用层级不深,代码简洁,避免层层回调,当下一个请求需要用到上一个请求的返回结果的时候,直接使用 .then().then() 进行链式回调

reject 错误处理

3、promise.all :并发请求,一次性进行多个异步操作
Promise.all 方法会并行执行数组中的所有 Promise 对象,不会按照顺序依次等待它们完成。这意味着即使其中某个 Promise 需要较长时间才能完成,其 他 Promise 仍会同时进行。这使得 Promise.all 成为处理并发任务的最佳选择。

输出结果:

备注:promiuse.all 执行的顺序根据数组顺序执行,且只要其中一个请求错误,就不会继续执行

应用场景:
1、需要同时进行的多个请求(因为promise.all是并行执行,所以不会等待某一个执行完成彩会执行)
2、对多个请求结果有依赖

浙公网安备 33010602011771号