首页 > 其他分享 >Promise的部分静态方法(all,race,allSettled)

Promise的部分静态方法(all,race,allSettled)

时间:2022-11-15 22:12:27浏览次数:54  
标签:resolve err 对象 race let promise Promise allSettled

Promise.all

作用:合并多个promise对象,等待结果全部成功后,返回结果

语法:Promise.all( [Promise对象1,Promise对象2,Promise对象3]…).then()

特点:返回结果是一个数组,

注意:如果有1个Promise失败, 则整个Promise对象则失败,它的值是这个失败的Promise的值

案例:

<script>
    let p1 = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(100)
        }, 5000)
    })
    let p2 = new Promise((resolve, reject) => {
        setTimeout(() => {
            reject(1)
        }, 1000)
    })
    let p3 = axios.get('http://ajax-api.itheima.net/api/province')
    let p = Promise.all([p1, p2, p3])
    p.then(res => {
        console.log(res)
    }).catch(err => {
        console.log('err', err)
    })
</script>

返回结果是err 1

Promise.race

作用:发起并同时运行多个promise对象, 只要任何一个有结果(成功|失败), 返回结果执行then

语法:Promise.race( [Promise对象1,Promise对象2,Promise对象3]…).then()

特点:返回第一个有结果的Promise对象的结果,无论成功失败

案例:

<script>
    let p1 = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(10)
        }, 10)
    })
    let p2 = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(1)
        }, 1000)
    })
    let p3 = axios.get('http://ajax-api.itheima.net/api/province11')

    let p = Promise.race([p1, p2, p3])
    p.then(res => {
        console.log(res)
    }).catch(err => {
        console.log('err', err)
    })
</script>

返回结果是 10

Promise.allSettled

作用:合并多个promise对象,返回结果

语法:Promise.allSettled( [Promise对象1,Promise对象2,Promise对象3]…).then()

特点:返回一个promise,并带有一个对象数组

注意:返回的是一个所有给定的 promise都已经fulfilled或rejected的 promise对象

案例:

<script>
    let p1 = Promise.reject(1)
    let p2 = Promise.resolve(2)
    let p3 = Promise.resolve(3)
    let p = Promise.allSettled([p1, p2, p3])
    console.log(p)
</script>

结果是一个promise对象,里面带有一个对象数组

标签:resolve,err,对象,race,let,promise,Promise,allSettled
From: https://www.cnblogs.com/Ayako/p/16894167.html

相关文章

  • 认识 MySQL OPTIMIZER_TRACE--转
    手把手教你认识OPTIMIZER_TRACE前 言我们在日常维护数据库的时候,如果遇到慢语句查询的时候,我们一般会怎么做?执行EXPLAIN去查看它的执行计划? ......
  • Promise.all、race和any方法都是什么意思?
    ////执行多个并行任务constpromiseAll=[thenFs.readFile('./files/1.txt','utf8'),thenFs.readFile('./files/2.txt','utf8'),thenFs.readFile('./f......
  • 18 . 介绍一下 Promise
    Promise是js内置的构造函数,也叫做期约函数,它有3种状态,等待状态pending,成功状态fullfilled,失败状态reject;2个过程,等待状态到成功状态会调用Promise实例的th......
  • UVA323 Jury Compromise
    UVA323JuryCompromise-洛谷|计算机科学教育新生态(luogu.com.cn)由于选择人数有限制(等于\(m\)),因此考虑将人数设入动态规划的一维。考虑目标是\(D+P\)最大,那......
  • 【JS】891- 高级 Promise 模式 - Promise缓存
    https://www.jonmellman.com/posts/promise-memoization 译者:ConardLi在本文中,我们将介绍常见的缓存实现在并发条件下存在的问题。然后我们将介绍如何修复它,并且在此过程......
  • Promise 的模拟实现
    1.为什么会有Promise当我们多次进行有依赖的网络请求或者文件请求时,很可能会造成代码的层层嵌套,导致回调地狱的出现:$.ajax({url:"xxx",success:function(......
  • promise
    1、asyncawait与promisepromise方法被使用时,加上awaitasync会被异步使用async使得方法看起来像异步awaitpromise方法使得方法证证异步2、newPromise使得方法直......
  • js 闭包和promise
    闭包概述:闭包就是在函数内部返回一个函数,内部函数可以对外部函数的属性和方法进行引用,外部的属性和方法不会被js垃圾回收机制所回收这个结构就称为闭包函数的生命周......
  • Promise与async、await结合使用
    Promise与async、await结合使用functionfun(){returnnewPromise((resolve,reject)=>{//返回一个Promise对象setTimeout(()=>{//此处也可以使用调其......
  • 小程序promise封装
    小程序promise封装//ajaxpromise封装constrequestFetch=(url,method,param)=>{//一个页面中可能会发送多个请求,ajaxTimes记载同时发送异步请求代码的次数,目......