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 :并发请求,一次性进行多个异步操作
输出结果:
备注:promiuse.all 执行的顺序根据数组顺序来