ウェブサイト検索
値のイベントを監視する関数を作りました:
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); }) }) }データベースが変更されると、この関数が呼び出されるのは確認できますが、アプリケーション全体でこれにサブスクラ
続きを読む →
私は Firebase のオブザーバブル(distinct と filter)で RXJS のオペレーターを使用しています。こちらが私の Firebase ツリーです。こちらが私のコードです:
let places this.db.list(`users/${this.authProvider.getUID()}/visitedPlaces`,{ query:{ orderByChild:"googleId" } }); places.distinct((p)=>{ console.log(p) return p.googleId; }). subscr 続きを読む →
何時間も堂々巡りしてしまったので、また別の難しい質問の時間です。
私は lerna モノリポの中にいて、2つのサブプロジェクト、ProjectA と ProjectB があります。
ProjectA は rxjs に依存しており、ProjectB も同様です。
ProjectB は lerna がシンボリックリンクを使って管理する
続きを読む →
私は少し 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/takeUntil'; import 続きを読む →基本的に、私はまだAngularコンポーネント内のリアクティブコードのクリーンアップについてあまりよくわかっていません。次のルールは正しくて十分でしょうか?
リアクティブコンポーネントに関する私のルール:
手動で x.subscribe() の場合:
テンプレートの observable | async で:
私たちはWebSocketを介してgraphqlをクエリして、エンティティのリストへのサブスクリプションを行っています。リストは無限にスクロール可能であることが想定されているため、ページネーションを使用しています。また、フロントエンドのリストでデータベースに行われた変更をリアルタイムで確認したいと考えています。
このリストはフィルタリング、ソート、ページ分割できます。
私たちはそれを行うのに役立つ SelectParams クラスを持っています。
export class SelectParams { page = 0; query = ''; sort: Sort = { sortBy: 'creationDate', sortOrder: 'DESC' }; take = 30; }それからリストを購読したいときは、単に
続きを読む →
私はAngular 5のアプリをAngular 6に移行しようとしていて、この1つのRxJSコードのブロックに手こずっています。Googleで調べたり、RxJSのドキュメントを読んだりして、.pipeを使うべきだということは分かっていますが、構文がうまく理解できません。
コードは、ユーザーが検索入力欄に入力する際に API 呼び出しから結果を返します。新しいバージョンでは現在、次のエラーを投げます:
ERROR TypeError: Cannot read property 'call' of undefined 続きを読む →
this.attachmentList.forEach((attachment, i) => {
this.service.getPageOfAttachment().flatMap(response =>
this.service.download((JSON.parse(response['Content']).mediaUrl)))
.subscribe(response => {
}, error =&g
続きを読む →
私のコードでは、ホットオブザーバブル(share() オペレーターを通したコールドオブザーバブル)が識別子付きの値を放出しています(つまり、ペイロードの型に「id」という文字列プロパティが含まれています)。その値に対して、多くのオブザーバーがその id に基づいて放出された値をフィルタリングしています。
私は今、自分のコードが大きなパフォーマンスの低下を受けていると考えています。なぜなら、すべてのオブザーバーが発行されるすべての値をフィルタリングしなければならないからです。むしろ、新しいオブザーバーが共有オブザーバブルに購読するたびに、新しいフィルタされたオブザーバブルが作成されます。コードはだいたい次のような感じです:
const source = new Observable(); const sharedObservable = source.pipe(share()); sharedObservable .pipe(filter(payload => payload.id === "id1")) .subscr 続きを読む →
Angular 6にアップグレードしたときにこのエラーが出ます。.pipe()を使う方法はドキュメントで見ましたが、下記のように複数の.map()がある場合にpipeの使い方がわかりません。助けが必要です...
import {Injectable} from '@angular/core'; import {Http, Headers} from '@angular/http'; import 'rxjs/add/operator/map'; import {TOKEN_AUTH_PASSWORD, TOKEN_AU 続きを読む →