Menu
CoddyTech

שתי קריאות עצמאיות

חלק מהיחידה יסודות Node.js במסלול ה-Node.js של Coddy. שיעור 24 מתוך 33.

אפשר להתחיל שתי פעולות קריאה יחד כשאף אחת מהן לא זקוקה לתוצאה של האחרת. Promise.all מקבלת את ההבטחות שלהן ומחזירה הבטחה אחת עבור מערך של תוצאות. המתיני למערך הזה פעם אחת.

const [name, city] = await Promise.all([
    readFile('name.txt', 'utf8'),
    readFile('city.txt', 'utf8'),
]);

התוצאה הראשונה שייכת להבטחה הראשונה, גם אם פעולת הקריאה השנייה מסתיימת מוקדם יותר. הסוגריים המרובעים משייכים את שתי התוצאות למשתנים נפרדים. אם אחת מפעולות הקריאה נכשלת, ההבטחה המשולבת נדחית. השתמשי ב-await נפרדים כשפעולה אחת זקוקה לתוצאה הקודמת.

קורא התרגול שסופק מסרב לקריאה שממתינים לה לפני שהקריאה השנייה התחילה. כך הוא ממחיש המתנה מוקדמת מדי; הוא לא מודד את מהירות הביצוע.

challenge icon

אתגר

קל

זהו פרויקט תרגול קטן. ההגדרה שלו מסופקת; ערכו רק את practice.js.

קראו את note.txt ואת owner.txt באמצעות Promise.all. השתמשו בתוצאות כדי להדפיס Ada: Buy milk. השאירו את note ראשונה במערך הקלט. הפעלה מריצה את node practice.js.

השתמשו בקורא שיובא. התחילו את שתי הקריאות לפני ההמתנה; קורא התרגול הזה דוחה בכוונה המתנות עוקבות.

השתמשו בערכים שסופקו עבור noteFile ו-ownerFile. הריצו עם other-note.txt other-owner.txt: התוצאה הצפויה היא Bo: Walk.

נסו בעצמכם

import { readFile } from './reader.js';
const [noteFile = 'note.txt', ownerFile = 'owner.txt'] = process.argv.slice(2);
const note = '';
const owner = '';
console.log(owner + ': ' + note);

כל השיעורים ביחידה יסודות Node.js

תרגלו בעצמכם: Express אונליין