promise的使用
1.promise.prototype.then()
是promise实例的回调函数,接受两个回调函数作为参数,
第一个回调函数是promise对象的状态变为resolve时调用,(成功)
第二个回调函数是promise对象的状态变为 rejected时调用,(失败)
返回的是另一个promise对象,后面可以继续.then
2.promise.prototype.catch()
用于指定发生错误时的回调函数,返回的是一个promise对象,
3.promise.prototype.finally()
finally方法用于指定不管promise对象最后状态如何,都会执行的回调函数
promise静态API
promise.resolve() 返回新的状态为resolve的promise 对象
promise.reject() 返回一个新的状态为reject的promise对象
promise.all()等待所有异步成功结果在返回 回调
promise.race()哪个结果返回来的快就是哪个结果,不管是成功还是失败
promise.allSettled (【1,2,3】)数组中的异步依次返回成功结果 其中一个失败不会影响其他数据
使用场景(使用promise的多种方法)
(做耗时的操作时可以用promise包住,拿到结果)
1.解决回调地狱
可以链式调用,解决回调地狱(回调函数嵌套产生回调地狱问题)
async 和await 也可以解决回调地狱问题
2.多个并发请求
多个并发请求可以通过静态allsettled ,all,或者async/await 语法糖处理
promise的状态
Promise有三种状态:pending(进行中)、fulfilled(已完成)和rejected(已拒绝)