יצרתי פונקציה שמאזינה לאירועי ערך:
getUnreadMessages() : Observable<any>{ return new Observable(observer =>{ firebase.database().ref('messages/' + this.userService.getUserID()).on("value", (snapshot : any) =>{ let count = 0; ...some more logic here... observer.next(count); observer.complete(); }, (error) =>{ observer.error(error); }) }) }כאשר בסיס הנתונים משתנה, אני יכול לראות
קרא עוד →
אני משתמש במפעילי RXJS עם האובזרבל של Firebase (distinct ו-filter). זהו עץ ה-Firebase שלי כאן. זה הקוד שלי:
let places this.db.list(`users/${this.authProvider.getUID()}/visitedPlaces`,{ query:{ orderByChild:"googleId" } }); places.distinct((p)=>{ console.log(p) return p.googleId; }) קרא עוד →
בזבזתי שעות מסתובב במעגלים, אז הגיע הזמן לשאלה מעורפלת נוספת.
אני בתוך ריפוזיטורי מונו של lerna, עם שני פרויקטים משנה, ProjectA ו-ProjectB.
ProjectA תלוי ב-rxjs, כפי ש-ProjectB גם תלוי.
Pro
קרא עוד →
שיחקתי קצת עם RxJS 6. אני מנסה ליישם dragstart, dragmove ו-dragend. זה הקוד שיש לי עד עכשיו.
import { fromEvent } from 'rxjs'; import { concatMap } from 'rxjs/internal/operators/concatMap'; import { map } from 'rxjs/internal/operators/map'; import { takeUntil } from 'rxjs/internal/operators/takeUnt קרא עוד →בסיסית, אני עדיין לא ממש בטוח לגבי ניקוי קוד ריאקטיבי ברכיבי Angular. האם הכללים הבאים נכונים ומספיקים?
הכללים שלי עבור רכיב תגובתי:
במדריך x.subscribe():
ב-observable | async של ה
קרא עוד →אנחנו מבצעים שאילתא ל-graphql דרך websocket כדי לקבל מנוי לרשימת ישויות. אנחנו משתמשים בעימוד מכיוון שהרשימה אמורה להיות ניתנת לגלילה ללא הגבלה. אנחנו גם רוצים לראות שינויים שנעשו בבסיס הנתונים בזמן אמת ברשימה בצד הלקוח.
רשימה זו יכולה להיות מסוננת, ממוינת ו-מחולקת לדפים.
יש לנו את המחלקה SelectParams שעוזרת לנו לעשות את זה:
export class SelectParams { page = 0; query = ''; sort: Sort = { so קרא עוד →
אני מנסה להעביר אפליקציית Angular 5 ל-Angular 6 ויש לי קטע קוד אחד של RxJS שמבלבל אותי. חיפשתי בגוגל וקראתי את התיעוד של RxJS מספיק כדי לדעת שאני צריך להשתמש ב-.pipe, אבל אני לא מצליח בדיוק להבין את הסינטקס.
הקוד מחזיר תוצאות מקריאת API כאשר המשתמש מקליד בשדה חיפוש. הגרסה החדש
קרא עוד →
this.attachmentList.forEach((attachment, i) => {
this.service.getPageOfAttachment().flatMap(response =>
this.service.download((JSON.parse(response['Content']).mediaUrl)))
.subscribe(response => {
}, error =&g
קרא עוד →
בקוד שלי, יש לי אובזרבל חם (אובזרבל קר שמוזן דרך אופרטור share()) שמשדר ערכים עם מזהים (כלומר סוג המטען מכיל תכונת מחרוזת בשם "id"). קבוצה של צופים על זה מסננים את הערכים המשודרים על בסיס המזהה הזה.
אני עכשיו חושב שהקוד שלי סופג ירידה עצומה בביצועים, מכיוון שכל מתבונן צריך לסנן כל ערך שמופץ. או יותר נכון, נוצר אובזרבל מסונן חדש בכל פעם שאני צריך שמתבונן חדש ירשם לאובזרבל המשותף. הקוד נראה משהו כזה:
const source = new Observable(); const sharedObservable = source.pipe(share קרא עוד →
אני מקבל את השגיאה הזו כאשר שידרגתי ל-Angular 6. אני רואה את התיעוד לשימוש ב-.pipe(), אבל אני לא מבין איך להשתמש ב-pipe כשיש כמה .map() כפי שמופיע למטה. צריך את העזרה שלך...
import {Injectable} from '@angular/core'; import {Http, Headers} from '@angular/http'; impor קרא עוד →