To je rychlovka. 🙈
Při psaní skriptů Node.js, které používají fs
modul, obvykle jsem používal util
metoda, která slibuje metody souborového systému. Metody založené na slibech umožňují použití async/await
a to usnadňuje uchopení a čtení kódu.
Dnes jsem se dozvěděl, že od Node.js 11 je fs
modul poskytuje "slíbené" metody v promises
vlastnictví. 🎉
// old way have using promise-based fs methods
const { readFile } = require("fs");
const { promisify } = require('util');
const promisifiedReadFile = promisify(readFile);
promisifiedReadFile(__filename, { encoding: "utf8" })
.then(data => console.log(data));
// --------------------
// new way of using promise-based fs methods
// no util.promisify!!!
const { readFile } = require("fs").promises;
readFile(__filename, { encoding: "utf8" })
.then(data => console.log(data));
Pomocí promises
vlastnost, nyní můžete přeskočit krok k transformaci zpětných volání na sliby a není třeba používat promisify
. To je skvělá zpráva pro zploštění některých zdrojových kódů a nasazení async/await
!
fs/promises
je k dispozici od Node.js 14
Aktualizace:Od Node.js 14 fs
modul poskytuje dva způsoby, jak používat metody souborového systému založené na slibech. Sliby jsou dostupné prostřednictvím require('fs')
nebo require('fs/promises')
.
// Since Node.js v14: use promise-based fs methods
// no util.promisify!!!
const { readFile } = require("fs/promises");
readFile(__filename, { encoding: "utf8" })
.then(data => console.log(data));
Jsem velmi nadšený z /promises
přidání cesty, protože se zdá, že správci Node.js souhlasí s tímto způsobem, jak v budoucnu odhalit více metod založených na slibech stávajících modulů.
V Node.js v15 modul Časovače také poskytuje experimentální timers/promises
balík. To znamená, že můžete udělat await setTimeout
brzy – Node.js se vyvíjí a to znamená méně util
a další kódování! 🎉
Pokud si chcete přečíst další tipy a triky pro Node.js, přejděte do sekce Node.js na mém blogu nebo se přihlaste k odběru mého newsletteru níže.