要优雅地处理两个回调都结束后再处理另外一个任务,可以使用Promise.all() 方法来等待两个回调都完成后再执行另外一个任务。

以下是一个示例代码:

// 创建两个 Promise 对象,模拟两个回调函数
const promise1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    console.log("Callback 1 completed");
    resolve("Result 1");
  }, 2000);
});

const promise2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    console.log("Callback 2 completed");
    resolve("Result 2");
  }, 3000);
});

// 使用 Promise.all() 等待两个回调都完成
Promise.all([promise1, promise2])
  .then((results) => {
    // 两个回调都完成后执行另外一个任务
    console.log("Both callbacks completed");
    console.log("Results:", results);
    // 执行另外一个任务
    console.log("Another task...");
  })
  .catch((error) => {
    console.error("Error:", error);
  });

在上述示例中,首先创建了两个 Promise 对象,分别模拟两个回调函数,并使用setTimeout() 来模拟异步操作。

然后,使用Promise.all() 方法将这两个 Promise 对象作为参数传入,Promise.all() 方法会返回一个新的 Promise 对象。当两个回调都完成后,这个新的 Promise 对象才会被resolve。

接着,使用.then() 方法来处理Promise.all() 返回的 Promise 对象,在.then() 方法中可以执行另外一个任务,即两个回调都结束后需要处理的任务。

最后,使用.catch() 方法来处理可能出现的错误。

这样,两个回调都结束后会执行另外一个任务,并且代码逻辑比较清晰和优雅

如何优雅的写出两个回调都结束后处理另外一个任务

原文地址: https://www.cveoy.top/t/topic/idMg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录