📜  js 等待 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:03.224000             🧑  作者: Mango

等待 JavaScript 中的操作

在编写 JavaScript 代码时,您可能需要执行一些涉及等待的操作,例如延迟执行或等待 API 响应。 在这种情况下,您可以使用 JavaScript 提供的一些方法来等待操作完成。

setInterval / setTimeout

setInterval 和 setTimeout 是两种 JavaScript 定时函数。 这两个函数非常相似,不同之处在于 setInterval 将在给定时间间隔之后重复执行函数,而 setTimeout 仅在给定时间间隔后执行一次函数。

例如,下面的代码将在 1000 毫秒之后显示一条消息:

setTimeout(function() {
  console.log('Hello, World!');
}, 1000);

您可以使用这些函数来延迟执行代码或执行非常重要的操作。

async / await

async / await 是 ES2017 中的新功能。 它们是让 JavaScript 更加易读的一种方法,使得异步操作显得更加同步。

async / await 使得开发人员可以使用类似于同步代码的方式编写异步函数。 这种方法有助于提高代码的可读性和维护性,特别是在编写大型代码库时。

下面是一个使用 async / await 的示例:

async function myFunction() {
  const myPromise = new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Hello, World!');
    }, 1000);
  });

  const result = await myPromise;
  console.log(result);
}

myFunction();

在上面的代码中,一个 Promise 被创建并在 1000 毫秒后被解决。 变量result 等待 Promise,然后将其值日志输出。

Promise

Promise 是 JavaScript 编程中常用的另一种等待方法。 Promise 提供了对异步操作的优雅处理,例如从 API 获取数据或加载图像。 Promise 使代码更易于编写和管理,但是需要一些额外的学习。

在下面的代码中,一个 Promise 被创建并在 1000 毫秒后被解决。 如果 Promise 被接受,则可以执行一些代码。

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Hello, World!');
  }, 1000);
});

myPromise.then((result) => {
  console.log(result);
}).catch((error) => {
  console.error(error);
});

当 Promise 被解决时,.then 和语句将按顺序执行。 如果 Promise 被拒绝,则 catch 和语句将捕获错误并执行。

总结

以上是 JavaScript 等待的一些常用方法。 setInterval 和 setTimeout 可用于延迟执行代码。 async / await 和 Promise 则更适用于处理对 API 的调用等异步操作。 选择正确的操作方式可以在优化 JavaScript 代码的同时提高代码的可读性和维护能力。