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