当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Javascript Promise.allSettled()用法及代码示例


JavaScript中的Promise可以处于待处理,已实现或已拒绝的三种状态。当解决了所有已实现或拒绝的输入时,使用Javascript中的Promise.allSettled()方法获得承诺。

用法:

Promise.allSettled(iterable);

参数:此方法接受一个可迭代的单个参数,该参数采用一个Promise数组或一个包含某些对象的普通数组。

返回值:此方法返回以下值:

  • 如果传递的参数为空,则返回已解决的Promise。
  • 对于所有其他情况,它将返回一个未决的Promise。

范例1:



Javascript

<script> 
    // Illustration of Promise.allSettled()  
    // Method in Javascript with Example 
  
    const p1 = Promise.resolve(50); 
    const p2 = new Promise((resolve, reject) =>  
                    setTimeout(reject, 100, 'geek')); 
    const prm = [p1, p2]; 
  
    Promise.allSettled(prm). 
      then((results) => results.forEach((result) =>  
      console.log(result.status,result.value))); 
</script>


输出:

"fulfilled"
 50
"rejected" 
 undefined

范例2:

Javascript

<script> 
    // Simple promise that resolves  
    // After a given time  
    const tOut = (t) => {  
      return new Promise((resolve, reject) => {  
        setTimeout(() => {  
          resolve(`Completed in ${t}`)  
        }, t)  
      })  
    }  
    
    // Resolving a normal promise  
    tOut(1000).then(result => console.log(result))   
    // Completed in 1000  
    
    // Promise.allSettled  
    Promise.allSettled([tOut(1000), tOut(2000)]).then(result =>  
    console.log(result))  
</script>

输出:

"Completed in 1000"
Array [Object { status:"fulfilled", value:"Completed in 1000" }, 
Object { status:"fulfilled", value:"Completed in 2000" }]

支持的浏览器:下面列出了JavaScript Promise.allSettled()方法支持的浏览器:

  • 谷歌浏览器
  • 微软边
  • 火狐浏览器
  • 苹果Safari
  • Opera

相关用法


注:本文由纯净天空筛选整理自shivanisinghss2110大神的英文原创作品 JavaScript | Promise.allSettled() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。