Dwa niezależne odczyty
Część sekcji Podstawy Node.js ścieżki Node.js w Coddy. Lekcja 24 z 33.
Dwa odczyty mogą rozpocząć się jednocześnie, gdy żaden z nich nie wymaga wyniku drugiego. Promise.all przyjmuje ich obietnice i zwraca jedną obietnicę dla tablicy wyników. Poczekaj na tę tablicę tylko raz.
const [name, city] = await Promise.all([
readFile('name.txt', 'utf8'),
readFile('city.txt', 'utf8'),
]);Pierwszy wynik odpowiada pierwszej obietnicy, nawet jeśli drugi odczyt zakończy się wcześniej. Nawiasy kwadratowe przypisują oba wyniki do osobnych zmiennych. Jeśli którykolwiek odczyt się nie powiedzie, łączna obietnica zostanie odrzucona. Używaj osobnych instrukcji await, gdy jedna operacja wymaga wyniku poprzedniej.
Dostarczony czytnik do ćwiczeń odmawia odczytu, na który czeka się przed rozpoczęciem drugiego odczytu. Dzięki temu widać, że czekanie rozpoczęło się zbyt wcześnie; czytnik nie mierzy szybkości wykonywania.
Wyzwanie
ŁatwyTo mały projekt ćwiczeniowy. Konfiguracja jest gotowa; edytuj tylko practice.js.
Odczytaj note.txt i owner.txt za pomocą Promise.all. Użyj wyników, aby wypisać Ada: Buy milk. Umieść note jako pierwszy element tablicy wejściowej. Uruchomienie wykonuje node practice.js.
Użyj zaimportowanego czytnika. Rozpocznij oba odczyty przed oczekiwaniem; ten czytnik ćwiczeniowy celowo odrzuca sekwencyjne użycie await.
Użyj podanych wartości noteFile i ownerFile. Uruchom z argumentami other-note.txt other-owner.txt: oczekiwany wynik to Bo: Walk.
Spróbuj swoich sił
import { readFile } from './reader.js';
const [noteFile = 'note.txt', ownerFile = 'owner.txt'] = process.argv.slice(2);
const note = '';
const owner = '';
console.log(owner + ': ' + note);
Wszystkie lekcje w sekcji Podstawy Node.js
1Uruchamianie JavaScript w Node
Witaj, NodeOdczytywanie poleceniaArgumenty wiersza poleceńPolecenia4Asynchroniczny Node
Korzystanie z wyniku funkcji zwrotnejFunkcje zwrotneWynik PromiseGdy Promise zawiedziePromiseOczekiwanie na wartośćAsync i AwaitDwa niezależne odczytyPromise.allPętla zdarzeńTimery5Zdarzenia, dane wejściowe i pakiety
Nasłuchuj przed emisjąEmitery zdarzeńOdczytywanie danych wejściowychPoćwicz samodzielnie: Edytor online Express