📅  最后修改于: 2023-12-03 15:27:51.390000             🧑  作者: Mango
在编写JavaScript应用程序时,我们通常需要在执行一些异步任务时对程序进行等待处理。这是因为有时候需要在等待某些结果返回之后才能继续进行下一步操作。
本文将介绍几种JavaScript中实现等待的方法。
setTimeout
是JavaScript中的一个常用函数,可以用来在一定时间之后执行一段函数。我们可以利用该函数实现等待的功能,例如:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function demo() {
console.log('等待2秒钟...');
await sleep(2000);
console.log('2秒钟已过');
}
demo();
上面的代码中,通过创建一个sleep
函数来实现等待的功能。在demo
函数中通过await sleep(2000);
等待2秒钟,然后再执行后面的代码。
Promise
是另一个常用的JavaScript函数,它可以回传两个函数来表示异步任务的状态,分别是resolve
和reject
。我们可以利用Promise
函数来实现等待的功能,例如:
function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
async function demo() {
console.log('等待2秒钟...');
await sleep(2000);
console.log('2秒钟已过');
}
demo();
上面的代码中,通过创建一个Promise
函数返回一个setTimeout
函数,实现等待2秒钟的功能。
async
和await
是ES7中引入的关键字,可以帮助我们更方便地实现等待功能,例如:
async function demo() {
console.log('等待2秒钟...');
await new Promise(resolve => setTimeout(resolve, 2000));
console.log('2秒钟已过');
}
demo();
上面的代码中,创建了一个async
函数demo
,在其中通过await
关键字等待setTimeout
函数返回的Promise
。这样,当等待时间过去后,await
后面的代码才会执行。
无论使用哪种方式,实现等待的目的是一样的——在异步任务完成之前等待一段时间,使得连续执行的代码能够按照正确的顺序执行。由于每种方法的实现方式和语法有所不同,使用时需要结合实际情况进行选择。