在JavaScript中,異步操作通常使用回調函數、Promises或者async/await語法來實現。以下是一些示例:
回調函數是一種傳統的異步實現方式。在這種方式中,我們將一個函數作為參數傳遞給另一個函數,當異步操作完成時,這個函數會被調用。
const fs = require('fs');
fs.readFile('example.txt', 'utf-8', function(err, data) {
if (err) {
console.error(err);
return;
}
console.log(data);
});
Promises是一種更現代的異步實現方式。它表示一個尚未完成但預計將來會完成的操作。Promise對象有三種狀態:pending(進行中)、fulfilled(已成功)和rejected(已失?。?。
const fs = require('fs').promises;
fs.readFile('example.txt', 'utf-8')
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
async/await是基于Promises的一種更簡潔的異步實現方式。通過在函數前添加async關鍵字,我們可以在函數內部使用await關鍵字等待一個Promise完成。
const fs = require('fs').promises;
async function readFileAsync() {
try {
const data = await fs.readFile('example.txt', 'utf-8');
console.log(data);
} catch (err) {
console.error(err);
}
}
readFileAsync();
這些示例都使用了Node.js的fs模塊來讀取文件,但同樣的方法也適用于其他異步操作,如HTTP請求、數據庫查詢等。