Async ve Await
Coddy'nin Node.js Journey'sinin Node.js Temelleri bölümünün bir parçası. Ders 16 / 24.
.then çağrıları zinciri, adımları düşündüğünüz sıradan farklı görünür: oku, sonra ayrıştır, ardından kaydet.
Bir async işlevinin içinde await, bir promise sonuçlanana kadar bekler ve değerini verir. Başarısız bir promise burada hata fırlatır; bu nedenle try ve catch bunu yönetir. Bir modülde await, en üst düzeyde de çalışır.
import { readFile } from 'node:fs/promises';
const loadConfig = async () => {
try {
return JSON.parse(await readFile('config.json', 'utf8'));
} catch {
return {};
}
};
const config = await loadConfig();
console.log(config.port ?? 3000);Bir async işlevi her zaman bir promise döndürür; bu yüzden onu çağıran kod da await kullanarak bekler. Bir await ifadesini unutursanız, değeri yerine promise'ın kendisini, Promise { <pending> }, elde edersiniz.
Görev
Kolaystore.jsartıknode:fs/promisesile okuma ve yazma işlemleri yapıyor. Her komutun eskisi gibi çalışması için eksikawaitifadelerini ekle.notes.js, artıkasyncolanstore.addvestore.removeişlevlerini bekliyor.
Önce hatayı okumak için node notes.js list komutunu çalıştır, sonra çalıştığında add ve done 1 komutlarını çalıştır.
Kendin dene
import { existsSync } from 'node:fs';
import { readFile, writeFile } from 'node:fs/promises';
const file = 'notes.json';
// readFile ve writeFile artık promise döndürüyor. Her birini await ile bekleyin.
const load = async () => {
if (!existsSync(file)) {
return [];
}
try {
return JSON.parse(readFile(file, 'utf8'));
} catch (err) {
console.error(`notes.json is damaged: ${err.message}`);
process.exit(1);
}
};
const store = {
notes: load(),
async save() {
writeFile(file, JSON.stringify(this.notes, null, 2));
},
async add(text) {
this.notes.push(text);
this.save();
return this.notes.length;
},
async remove(n) {
const [text] = this.notes.splice(n - 1, 1);
this.save();
return text;
},
};
export default store;
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Node.js Temelleri bölümündeki tüm dersler
1JavaScript'ı Node Üzerinde Çalıştırma
Merhaba, NodeKomut Satırı ArgümanlarıKomutlar