在 ES9 中使用 Promise.allSettled() 处理异步任务
在前端开发中,处理异步任务是非常常见的。随着 ES9 的发布,新的 Promise.allSettled() 方法可以更加方便地处理异步任务的结果。
Promise.allSettled() 方法接收一个 Promise 数组作为参数,返回一个 Promise,该 Promise 在所有传入的 Promise 都被解决或拒绝后被解决。与 Promise.all() 方法不同的是,Promise.allSettled() 方法不会在任何 Promise 被拒绝时立即拒绝,而是在所有 Promise 都被解决后才解决,返回的结果是一个包含每个 Promise 状态的对象数组。
下面是一个使用 Promise.allSettled() 方法处理异步任务的示例代码:
// javascriptcn.com 代码示例 const promises = [ fetch('https://jsonplaceholder.typicode.com/todos/1'), fetch('https://jsonplaceholder.typicode.com/todos/2'), fetch('https://jsonplaceholder.typicode.com/todos/3'), ]; Promise.allSettled(promises) .then(results => { results.forEach(result => { if (result.status === 'fulfilled') { console.log(result.value); } else { console.log(result.reason); } }); });
在上面的示例代码中,我们使用了 fetch 方法获取了三个 JSON 数据。然后我们将这三个 Promise 对象放在一个数组中,然后使用 Promise.allSettled() 方法处理这个数组。
当所有的 Promise 都被解决后,Promise.allSettled() 方法会返回一个包含每个 Promise 状态的对象数组。我们可以使用 forEach() 方法遍历这个数组,然后根据每个 Promise 的状态来输出对应的结果。
Promise.allSettled() 方法的使用可以让我们更加方便地处理异步任务的结果。不仅如此,它还可以让我们更好地处理异步任务的异常情况,从而提高代码的可靠性和健壮性。
总结
在 ES9 中使用 Promise.allSettled() 方法可以更加方便地处理异步任务的结果。与 Promise.all() 方法不同的是,Promise.allSettled() 方法不会在任何 Promise 被拒绝时立即拒绝,而是在所有 Promise 都被解决后才解决,返回的结果是一个包含每个 Promise 状态的对象数组。在实际开发中,我们可以根据具体的业务需求来灵活使用 Promise.allSettled() 方法,从而提高代码的可靠性和健壮性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656b9b16d2f5e1655d402b15