שתי קריאות עצמאיות
חלק מהיחידה יסודות Node.js במסלול ה-Node.js של Coddy. שיעור 24 מתוך 33.
אפשר להתחיל שתי פעולות קריאה יחד כשאף אחת מהן לא זקוקה לתוצאה של האחרת. Promise.all מקבלת את ההבטחות שלהן ומחזירה הבטחה אחת עבור מערך של תוצאות. המתיני למערך הזה פעם אחת.
const [name, city] = await Promise.all([
readFile('name.txt', 'utf8'),
readFile('city.txt', 'utf8'),
]);התוצאה הראשונה שייכת להבטחה הראשונה, גם אם פעולת הקריאה השנייה מסתיימת מוקדם יותר. הסוגריים המרובעים משייכים את שתי התוצאות למשתנים נפרדים. אם אחת מפעולות הקריאה נכשלת, ההבטחה המשולבת נדחית. השתמשי ב-await נפרדים כשפעולה אחת זקוקה לתוצאה הקודמת.
קורא התרגול שסופק מסרב לקריאה שממתינים לה לפני שהקריאה השנייה התחילה. כך הוא ממחיש המתנה מוקדמת מדי; הוא לא מודד את מהירות הביצוע.
אתגר
קלזהו פרויקט תרגול קטן. ההגדרה שלו מסופקת; ערכו רק את 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
1הרצת JavaScript ב-Node
שלום, Nodeקריאת הפקודהארגומנטים של שורת הפקודהפקודות4Node אסינכרוני
שימוש בתוצאה של CallbackCallbacksתוצאה של Promiseכש-Promise נכשלPromisesהמתנה לערךAsync ו-Awaitשתי קריאות עצמאיותPromise.allלולאת האירועיםטיימריםתרגלו בעצמכם: Express אונליין