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

绝地灬酷狼 2023-10-03 12:37 46阅读 0赞

目录

1.是什么:

2.格式:

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

4.代码示例:

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


1.是什么:

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


2.格式:

  1. 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.代码示例:

  1. let b1 = new Promise((resolve, reject) => {
  2. resolve('成功')
  3. })
  4. let b2 = new Promise((resolve, reject) => {
  5. resolve('success')
  6. })
  7. let b3 = Promse.reject('失败')
  8. Promise.all([b1, b2]).then((result) => {
  9. console.log(result) //打印结果:['成功', 'success']
  10. }).catch((error) => {
  11. console.log(error)
  12. })
  13. Promise.all([b1, b2,b3]).then((result) => {
  14. console.log(result)
  15. }).catch((error) => {
  16. console.log(error) // 打印结果: '失败'
  17. })

#


#

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


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


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

发表评论

表情:
评论列表 (有 0 条评论,46人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JPS相关

    作用 JPS是用来列出目标系统(windows或者linux)的JVM的相关信息。该命令仅限于展示其具有访问权限的jvm上的信息。jps命令生成的jvm列表可以被授予的权

    相关 sscanf相关

    sscanf的作用: 从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。 sscanf和scanf的区别: scanf是以键盘作为

    相关 Nginx相关面试

    1,Nginx是如何处理一个请求的呢?     首先,nginx在启动时,会解析配置文件,得到需要监听的端口与ip地址,然后在nginx的master进程里面,先初始化好