ウェブサイト検索

TypeScript - Firebase と RxJS

値のイベントを監視する関数を作りました:

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); }) }) }

データベースが変更されると、この関数が呼び出されるのは確認できますが、アプリケーション全体でこれにサブスクラ

続きを読む →

angular - RXJSオペレーターがfirebaseで動作しない

私は 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

続きを読む →

javascript - 同じファイル内で Typescript モジュールが 'rxjs' を異なる方法で解決する

何時間も堂々巡りしてしまったので、また別の難しい質問の時間です。

私は lerna モノリポの中にいて、2つのサブプロジェクト、ProjectA と ProjectB があります。

ProjectA は rxjs に依存しており、ProjectB も同様です。

ProjectB は lerna がシンボリックリンクを使って管理する

続きを読む →

TypeScript - RxJS6: 完了後にストリームをリセットする

私は少し 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

続きを読む →

TypeScript - AngularでRxJsを使用する場合、コンポーネントで作成したObservableだけを完了させる必要がありますか?

基本的に、私はまだAngularコンポーネント内のリアクティブコードのクリーンアップについてあまりよくわかっていません。次のルールは正しくて十分でしょうか?

リアクティブコンポーネントに関する私のルール:

  • 手動で x.subscribe() の場合:

    • もし x.takeUntil(...) や類似の構造を使用している場合は、手動でのクリーンアップは不要です
    • コンポーネントのスコープで x.complete() が呼び出された場合、手動でのクリーンアップは不要です
    • それ以外は、必要に応じてまたは ngOnDestroy() 内で手動で .unsubscribe() します
  • テンプレートの observable | async で:

    • 手動でのクリーンアップは不要で、onPush に対応
  • 続きを読む →

TypeScript - RxJSで各ページへのサブスクリプションを伴うページネーション

私たちはWebSocketを介してgraphqlをクエリして、エンティティのリストへのサブスクリプションを行っています。リストは無限にスクロール可能であることが想定されているため、ページネーションを使用しています。また、フロントエンドのリストでデータベースに行われた変更をリアルタイムで確認したいと考えています。

このリストはフィルタリング、ソート、ページ分割できます。

私たちはそれを行うのに役立つ SelectParams クラスを持っています。

export class SelectParams { page = 0; query = ''; sort: Sort = { sortBy: 'creationDate', sortOrder: 'DESC' }; take = 30; }

それからリストを購読したいときは、単に

続きを読む →

typescript - Angular 6 RxJS使用中のエラー: 未定義のプロパティ 'call' を読み取ることができません

私はAngular 5のアプリをAngular 6に移行しようとしていて、この1つのRxJSコードのブロックに手こずっています。Googleで調べたり、RxJSのドキュメントを読んだりして、.pipeを使うべきだということは分かっていますが、構文がうまく理解できません。

コードは、ユーザーが検索入力欄に入力する際に API 呼び出しから結果を返します。新しいバージョンでは現在、次のエラーを投げます:

ERROR TypeError: Cannot read property 'call' of undefined

続きを読む →

javascript - RXJS Angular - Observableを含むforeachループの最後に関数を呼び出す方法は?

this.attachmentList.forEach((attachment, i) => { this.service.getPageOfAttachment().flatMap(response => this.service.download((JSON.parse(response['Content']).mediaUrl))) .subscribe(response => { }, error =&g

続きを読む →

javascript - RxJSでホット(共有)オブザーバブルを選択的に発行する方法は?

私のコードでは、ホットオブザーバブル(share() オペレーターを通したコールドオブザーバブル)が識別子付きの値を放出しています(つまり、ペイロードの型に「id」という文字列プロパティが含まれています)。その値に対して、多くのオブザーバーがその id に基づいて放出された値をフィルタリングしています。

私は今、自分のコードが大きなパフォーマンスの低下を受けていると考えています。なぜなら、すべてのオブザーバーが発行されるすべての値をフィルタリングしなければならないからです。むしろ、新しいオブザーバーが共有オブザーバブルに購読するたびに、新しいフィルタされたオブザーバブルが作成されます。コードはだいたい次のような感じです:

const source = new Observable(); const sharedObservable = source.pipe(share()); sharedObservable .pipe(filter(payload => payload.id === "id1")) .subscr

続きを読む →

typescript - Angular 6 - rxjs プロパティ 'map' は型 'observable' に存在しません

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

続きを読む →