建站学院

当前位置:

JavaScript中使用Promise.all()和Promise.allSettled()方法

浏览量:1220次

javascript中使用promise.all()和promise.allsettled()方法

本教程将教您如何在 JavaScript 中使用 Promise 等待。

在本教程中,我将教您有关 Promise.all() 和 Promise.allSettled() 方法以及如何使用它们来处理多个 Promise。

使用 Promise.all() 方法

Promise 对象具有三个有用的方法,名为 then()、catch() 和 finally(),您可以使用它们在 Promise 完成时执行回调方法。 p>

Promise.all() 方法是一个静态方法,这意味着它属于整个类,而不是绑定到该类的任何特定实例。它接受可迭代的 Promise 作为输入并返回单个 Promise 对象。

正如我之前提到的,Promise.all() 方法返回一个新的 Promise。如果传递给该方法的所有承诺都已成功解析,则此新承诺将解析为已确定承诺值的数组。一旦通过的承诺之一被拒绝,这个新的承诺也将被拒绝。

所有 Promise 均成功解决

以下是 Promise.all() 方法的示例,其中所有 Promise 均已成功解析:

const promise_a = new Promise((resolve) => {
  setTimeout(() => {
    resolve('Loaded Textures');
  }, 3000);
});

const promise_b = new Promise((resolve) => {
    setTimeout(() => {
      resolve('Loaded Music');
    }, 2000);
});

const promise_c = new Promise((resolve) => {
    setTimeout(() => {
      resolve('Loaded Dialogues');
    }, 4000);
});


const promises = [
  promise_a, promise_b, promise_c
];

console.log('Hello, Promises!');

Promise.all(promises).then((values) => {
  console.log(values);
  console.log('Start the Game!');
});

/* Output

19:32:06 Hello, Promises!
19:32:10 Array(3) [ "Loaded Textures", "Loaded Music", "Loaded Dialogues" ]
19:32:10 Start the Game!

*/
登录后复制

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【915688610@qq.com】,我们在确认后,会立即删除,保证您的版权。