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,就完事了。


相关文章
|
6月前
|
缓存 前端开发 JavaScript
整会promise这8个高级用法,再被问倒来喷我
整会promise这8个高级用法,再被问倒来喷我
整会promise这8个高级用法,再被问倒来喷我
|
6月前
|
前端开发 JavaScript API
【面试题】说说 Promise是什么?如何使用
【面试题】说说 Promise是什么?如何使用
|
6月前
|
前端开发
【面试题】吃透Promise?先实现一个再说(包含所有方法)(二)
【面试题】吃透Promise?先实现一个再说(包含所有方法)(二)
|
6月前
|
存储 运维 前端开发
【面试题】吃透Promise?先实现一个再说(包含所有方法)(一)
【面试题】吃透Promise?先实现一个再说(包含所有方法)(一)
|
前端开发
Promise的用法&原理&手写实现-2
Promise的用法&原理&手写实现-2
42 1
|
1月前
|
前端开发 JavaScript 开发者
深入理解JavaScript中的Promise:用法与最佳实践
【10月更文挑战第8天】深入理解JavaScript中的Promise:用法与最佳实践
56 0
|
1月前
|
存储 前端开发 JavaScript
关于 ES6 中 Promise 的面试题
关于 ES6 中 Promise 的面试题
16 0
|
6月前
|
Java 程序员
Java this关键字详解(3种用法),Java程序员面试必备的知识点
Java this关键字详解(3种用法),Java程序员面试必备的知识点
|
4月前
|
Android开发 Kotlin
Android经典面试题之Kotlin中Lambda表达式有哪些用法
Kotlin的Lambda表达式是匿名函数的简洁形式,常用于集合操作和高阶函数。基本语法是`{参数 -> 表达式}`。例如,`{a, b -> a + b}`是一个加法lambda。它们可在`map`、`filter`等函数中使用,也可作为参数传递。单参数时可使用`it`关键字,如`list.map { it * 2 }`。类型推断简化了类型声明。
26 0
|
4月前
|
Java 编译器 数据库连接
Java面试题:什么是Java中的注解以及如何自定义注解?举例说明注解的经典用法
Java面试题:什么是Java中的注解以及如何自定义注解?举例说明注解的经典用法
90 0

热门文章

最新文章