Promise.all()方方详解
详解 all Promise
2023-09-27 14:25:56 时间
1.Promise.all()方方详解
async/await实现Promise.acll() Promise.all() 方法接收一个 promise 的 iterable 类型(注:Array,Map,Set 都属于 ES6 的 iterable 类型)的输入,并且**只返回一个Promise实例**,并且**输入的所有 promise 的 resolve 回调的结果是一个数组**。
今日一题 - 请模拟实现一个Promise.all() 方法? Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 Promise.all()方法的参数可以不是数组,但必须具有 Iterator 接口(所以数组、Map、Set都可以),并且只返回一个Promise实例,输入的所有promise的resolve回调的结果会按传入的按顺序作为一个数组的其中一项返回。 当然也支持非promise对象的传入,会作为数组中的一项返回。
Promise.all 只有所有的Promise成功 才能够算作成功 只要有一个失败了 就直接失败
它包含一个参数 这个参数是指包含多个Promise的数组
如果有一个失败 那么返回第一个失败的Promise对象作为结果
也就是说 如果有两个失败了 返回第一个失败的Promise对象作为失败的结果。
如果他们三个都是成功的 那么all方法的返回的结果 是他们三个Promise对象成功结果的组成的一个数组
let p1 new Promise((resolve, reject) { resolve( ok1 ) let p2 new Promise((resolve, reject) { resolve( ok2 ) let p3 new Promise((resolve, reject) { resolve( ok3 ) const result Promise.all([p1, p2, p3]); console.log(result)
let p1 new Promise((resolve, reject) { resolve( ok1 ) let p2 new Promise((resolve, reject) { reject( ok2 ) let p3 new Promise((resolve, reject) { resolve( ok3 ) const result Promise.all([p1, p2, p3]); console.log(result)
由于promise在所有的结果都是成功
才算做成功
我们可以利用他的这个特征
去做全部成功才可以去完成某一个逻辑操作的业务场景
async/await实现Promise.acll() Promise.all() 方法接收一个 promise 的 iterable 类型(注:Array,Map,Set 都属于 ES6 的 iterable 类型)的输入,并且**只返回一个Promise实例**,并且**输入的所有 promise 的 resolve 回调的结果是一个数组**。
今日一题 - 请模拟实现一个Promise.all() 方法? Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 Promise.all()方法的参数可以不是数组,但必须具有 Iterator 接口(所以数组、Map、Set都可以),并且只返回一个Promise实例,输入的所有promise的resolve回调的结果会按传入的按顺序作为一个数组的其中一项返回。 当然也支持非promise对象的传入,会作为数组中的一项返回。
相关文章
- 详解物联网Modbus通讯协议
- Promise.all()方方详解
- redis.conf 配置详解
- (Dos)/BAT命令入门与高级技巧详解(转)
- Docker Daemon 连接方式详解
- 【JVM】JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解
- 图文详解 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)
- Redis 之hash集合结构及命令详解
- Cypress系列(70)- server() 命令详解
- Tensorflow(r1.4)API--tf.nn.conv2d详解
- Android 动态加载 (三) PAK 详解
- linux 中特殊符号用法详解
- Webpack(含 4)配置详解——关注细节
- Java内部类详解