异步JavaScript
#javascript #async #callback #promise

异步编程是JavaScript中的关键概念。它允许您执行需要一些时间来完成的操作(例如从服务器获取数据)而无需阻止执行主线程。在本文中,我们将探讨如何使用回调,承诺和异步/等待。

编写异步JavaScript代码。

回调

回调是编写异步JavaScript代码的常见方法。回调是一个函数,作为参数传递给另一个函数,并在第一个功能完成其任务后执行。这是一个例子:

function fetchData(callback) {
  setTimeout(() => {
    const data = { id: 1, name: 'Mohamed Zurfudeen' };
    callback(data);
  }, 2000);
}

fetchData(data => {
  console.log(data); // logs { id: 1, name: 'Mohamed Zurfudeen' }
});

在这里,我们定义了一个' fetchdata '功能,该功能通过使用' settimeout '函数模拟从服务器获取数据。 ' fetchdata '函数将回调函数作为参数,在完成后,它用获取的数据调用。然后,我们使用将获取数据记录到控制台的回调函数调用' fetchdata '。

承诺

承诺是JavaScript中的一个较新功能,它提供了一种更清洁,更结构化的方式来编写异步代码。承诺是代表异步操作最终完成(或失败)的对象。这是一个例子:

function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const data = { id: 1, name: 'Mohamed Zurfudeen' };
      resolve(data);
    }, 2000);
  });
}

fetchData()
  .then(data => {
    console.log(data); // logs { id: 1, name: 'Mohamed Zurfudeen' }
  })
  .catch(error => {
    console.error(error);
  });

在这里,我们定义了一个返回承诺的' fetchdata '功能。在承诺中,我们使用' resolve '函数将被提取的数据传递给'然后完成后'方法,或者' recove '如果出现问题,将错误传递给' catch '方法。然后,我们称' fetchdata ',然后使用'然后使用'和' catch '方法分别处理结果或错误。

异步/等待

异步/等待是一种在JavaScript中编写异步代码的更新,更方便的方法。它允许您编写看起来同步的代码,但实际上是在引擎盖下异步的。这是一个例子:

function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const data = { id: 1, name: 'Mohamed Zurfudeen' };
      resolve(data);
    }, 2000);
  });
}

async function main() {
  try {
    const data = await fetchData();
    console.log(data); // logs { id: 1, name: 'Mohamed Zurfudeen' }
  } catch (error) {
    console.error(error);
  }
}

main();

在这里,我们定义了一个标记为' async '的' main '函数。在功能中,我们使用'等待'关键字等待' fetchdata '承诺可以解决或拒绝,并将结果分配给' data < /strong>'变量。然后,我们将获取的数据记录到控制台或如果出现问题时处理错误。

结论

异步编程是JavaScript中的一个基本概念。通过使用回调,承诺和异步/等待,您可以编写可以执行耗时任务的代码,而无需阻止执行的主线程。