📜  等待 - Javascript (1)

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

等待 - Javascript

Javascript是一种用于构建Web应用程序的流行编程语言。在Web开发中,经常需要在代码执行期间等待某些事件完成,例如AJAX请求完成或用户输入。本文将介绍Javascript中不同等待事件的方法。

setTimeout和setInterval

setTimeout()函数可以等待指定的时间(毫秒),然后调用一个回调函数。例如,以下代码将在1秒后在控制台中输出“Hello World!”:

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

类似的,setInterval()函数可以每隔一段时间(毫秒)调用一个回调函数。例如,以下代码将每秒在控制台中输出当前时间:

setInterval(() => {
    console.log(new Date());
}, 1000);

需要注意的是,setTimeout()setInterval()函数可能比指定的时间稍晚调用回调函数,因为它们需要等待Javascript引擎空闲时才能执行。

Promise

Promise是Javascript异步编程中的一种解决方案。它代表了一个异步操作的最终完成或失败,可以通过then()catch()方法处理。要等待Promise完成,可以使用await关键字,并将调用Promise的函数标记为异步函数。

例如,以下代码使用Promise获取一个JSON文件,并在获取后打印它的内容:

async function getJson(url) {
  const response = await fetch(url);
  const json = await response.json();
  console.log(json);
}
async/await

使用async/await可以更简洁地处理Promise。与Promise的.then().catch()方法不同,async/await可以像同步代码一样编写异步代码,并且可以使用try-catch语句捕获异常。

例如,以下代码使用async/await等待1秒,然后打印“Hello World!”:

async function waitForOneSecond() {
  await new Promise(resolve => setTimeout(resolve, 1000));
  console.log('Hello World!');
}

需要注意的是,async/await只能用于处理Promise,并且必须在支持ECMAScript 2017的Javascript引擎中运行。

参考文献
  1. setTimeout()
  2. setInterval()
  3. Promise
  4. async function