📜  在 js 中等待 - Javascript (1)

📅  最后修改于: 2023-12-03 14:50:58.064000             🧑  作者: Mango

在 JavaScript 中等待 - Javascript

在 JavaScript 中,我们经常需要等待一些异步操作完成后再继续执行后续的代码。这可以通过不同的方式来实现,本文将介绍几种常见的等待操作的方法。

回调函数

在 JavaScript 中,回调函数是一种常见的实现等待操作的方式。可以将需要等待的代码封装在一个函数中,并将下一步的操作传递给这个函数作为回调函数。

function waitForAsyncTask(callback) {
  // 异步任务的代码
  setTimeout(() => {
    // 异步任务完成后执行回调函数
    callback();
  }, 1000);
}

waitForAsyncTask(() => {
  // 等待异步任务完成后执行的代码
  console.log('异步任务已完成');
});
Promise

Promise 是 ES6 中引入的新特性,它提供了一种更优雅的方式来处理异步操作。我们可以使用 Promise 的 then() 方法来等待异步操作的完成。

function waitForAsyncTask() {
  return new Promise((resolve, reject) => {
    // 异步任务的代码
    setTimeout(() => {
      // 异步任务完成后调用 resolve() 方法
      resolve();
    }, 1000);
  });
}

waitForAsyncTask().then(() => {
  // 等待异步任务完成后执行的代码
  console.log('异步任务已完成');
});
async/await

使用 async/await 是一种简洁、直观的方式来等待异步操作。async 关键字用于定义一个返回 Promise 的函数,而 await 关键字可以暂停执行,并等待 Promise 的解决。

async function waitForAsyncTask() {
  await new Promise((resolve, reject) => {
    // 异步任务的代码
    setTimeout(() => {
      // 异步任务完成后调用 resolve() 方法
      resolve();
    }, 1000);
  });
}

(async () => {
  await waitForAsyncTask();
  // 等待异步任务完成后执行的代码
  console.log('异步任务已完成');
})();
总结

在 JavaScript 中,通过使用回调函数、Promise 或者 async/await,我们可以实现在等待异步操作完成后再继续执行后续代码的效果。使用不同的方式可以根据具体情况选择最合适的实现方式。