promise.all()的用法和相关面试题

简介: promise.all()的用法和相关面试题

1.是什么:

promise.all()该方法用于将多个Promise实例,包装成一个新的Promise实例。


2.格式:


var b = Promise.all([b1,b2,b3]);

3.用法:以上面的格式为例


1.只有b1、b2、b3都是fulfilled(成功)时,b才是fulfilled(成功),此时b1、b2、b3的返回值组成一个数组,传递给p的回调函数。

2.只要b1、b2、b3之中有一个被rejected,b的状态就变成rejected,此时第一个被reject(失败)的实例的返回值,会传递给 b 的回调函数。

4.代码示例:


let b1 = new Promise((resolve, reject) => {
  resolve('成功')
})
let b2 = new Promise((resolve, reject) => {
  resolve('success')
})
let b3 = Promse.reject('失败')
Promise.all([b1, b2]).then((result) => {
  console.log(result)               //打印结果:['成功', 'success']
}).catch((error) => {
  console.log(error)
})
Promise.all([b1, b2,b3]).then((result) => {
  console.log(result)
}).catch((error) => {
  console.log(error)      // 打印结果: '失败'
})

5.面试题:必须当三个ajax请求都成功时,才能发送第四个请求,用promise实现?


思路1:这道面试题,如果用promise.all()实现是最好的。具体步骤可以参考,示例代码。

思路2:假设面试官不让用这个方法。我们可以定义一个全局变量,初始值为1,不是要三个请求都成功才能发第四个吗,我们就让这个请求,每成功一个值加一,最后判断这个值是不是4,就完事了。


相关文章
|
18天前
|
前端开发 JavaScript API
【面试题】说说 Promise是什么?如何使用
【面试题】说说 Promise是什么?如何使用
|
18天前
|
前端开发
【面试题】吃透Promise?先实现一个再说(包含所有方法)(二)
【面试题】吃透Promise?先实现一个再说(包含所有方法)(二)
|
18天前
|
存储 运维 前端开发
【面试题】吃透Promise?先实现一个再说(包含所有方法)(一)
【面试题】吃透Promise?先实现一个再说(包含所有方法)(一)
|
9月前
|
Java 容器
【面试题精讲】JavaOptional用法
【面试题精讲】JavaOptional用法
|
17天前
|
Java 程序员
Java this关键字详解(3种用法),Java程序员面试必备的知识点
Java this关键字详解(3种用法),Java程序员面试必备的知识点
|
18天前
|
前端开发 JavaScript
No101.精选前端面试题,享受每天的挑战和学习(Promise)
No101.精选前端面试题,享受每天的挑战和学习(Promise)
|
18天前
|
前端开发 JavaScript Java
【面试题】JavaScript 中 call()、apply()、bind() 的用法
【面试题】JavaScript 中 call()、apply()、bind() 的用法
|
18天前
|
前端开发 JavaScript API
【面试题】面试官:为什么Promise中的错误不能被try/catch?
【面试题】面试官:为什么Promise中的错误不能被try/catch?
|
18天前
|
JavaScript 前端开发 索引
【面试题】JS中的map的理解及用法
【面试题】JS中的map的理解及用法
|
18天前
|
Web App开发 文字识别 前端开发
【面试题】 详解css中伪元素::before和::after和创意用法
【面试题】 详解css中伪元素::before和::after和创意用法