📜  Javscript异步等待(1)

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

Javascript异步等待

在Javascript中,异步操作是经常使用的一种编程方式,但是在进行异步操作时,通常需要等待某个异步任务完成后再进行下一步操作。本文将介绍Javascript中的异步等待方式。

回调函数

最常用的异步等待方式就是回调函数。通过给异步操作传入回调函数,异步任务完成后再调用回调函数以执行下一步操作。

示例代码:

function asyncTask(callback) {
  setTimeout(() => {
    callback();
  }, 1000);
}

asyncTask(() => {
  console.log("Async task completed.");
});

以上代码中,异步操作是通过setTimeout实现的,等待1秒后执行回调函数,回调函数中输出日志。

Promise对象

ES6引入了Promise对象,可以更方便地处理异步操作。Promise对象包含resolvereject两个回调函数,分别用于表示异步操作成功和失败的情况。

示例代码:

function asyncTask() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve();
    }, 1000);
  });
}

asyncTask().then(() => {
  console.log("Async task completed.");
});

以上代码中,异步操作返回一个Promise对象,异步任务完成后调用resolve函数表示任务成功,然后通过.then语法糖来执行下一步操作。

async/await语法

async/await语法是ES7引入的一种异步编程方式。在异步函数前加上async关键字,然后在需要等待异步操作完成的地方前加上await关键字。

示例代码:

async function asyncTask() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve();
    }, 1000);
  });
}

async function main() {
  console.log("Before async task.");
  await asyncTask();
  console.log("After async task.");
}

main();

以上代码中,asyncTask函数返回一个Promise对象,main函数中通过await关键字等待异步操作完成后,再执行下一步操作。

总结

Javascript异步等待可以使用回调函数、Promise对象和async/await语法。根据实际需求选择合适的方式进行异步编程,提高编程效率和程序质量。