@yyy כתב בפניה אסינכרונית והמסתעף Angular TS:
זה נכון לגבי כל השמה, או שזה משהו ספציפי לפקודת return?
כל השמה
@yyy כתב בפניה אסינכרונית והמסתעף Angular TS:
למה פקודה כזו
returnthis.books || this.httpClient.get<Books []>(this.Getbooks URL).toPromise();
לא מבצעת אותו דבר, הרי אם האובייקט אינו מאותחל זה יחזיר undefind כלומר false, וילך לפרומיס לאתחל את האובייקט, ואם זה כן מאותחל כלומר true שיחזיר אותו עצמו ולא יפנה לפרומייס?
בדקתי ואכן בסינטקס שלי הוא כן פונה כל פעם מחדש ואני רק שואל למה זה קורה.
כפי שכתב אהרן, בתחביר שלך אתה לא מאתחל אותו אף פעם, אז הוא תמיד נשאר undefined, ולכן כך קריאה לפונקציה תייצר פניה לשרת.
אם תנסה לפרק את הסינטקס הזה לגורמים, זה יראה כך:
getBooks() {
if (this.books !== undefined) {
return this.books;
} else {
this.books = this.httpClient.get<Book[]>(this.GetBooksURL).toPromise(); // <<<<<<<<<<<<<<<
return this.books;
}
}
אצלך דילגת על שורה 5, ובמקום זה עשית כך:
getBooks() {
if (this.books !== undefined) {
return this.books;
} else {
return this.httpClient.get<Book[]>(this.GetBooksURL).toPromise();
}
}
אז books מעולם לא אותחל