タグ付けされた質問 「observable」

オブザーバブルは通常、「オブザーバー」と呼ばれる、コードの他の部分で「監視」できるプログラミング構造です。フレームワークとプログラミング言語が異なれば、オブザーバブルの実装も異なるため、このタグは通常、他のタグと組み合わせて使用​​する必要があります。

21
Angular / RxJs `Subscription`からの退会のタイミング
NgOnDestroyライフサイクル中にSubscriptionインスタンスを保存して呼び出す必要があるのunsubscribe()はいつですか。 すべてのサブスクリプションを保存すると、コンポーネントコードに多くの混乱が生じます。 HTTPクライアントガイドは、次のようなサブスクリプションを無視します。 getHeroes() { this.heroService.getHeroes() .subscribe( heroes => this.heroes = heroes, error => this.errorMessage = <any>error); } 同時に、Route&Navigation Guideによると: 最終的には、別の場所に移動します。ルーターはこのコンポーネントをDOMから削除して破棄します。それが起こる前に、私たちは自分自身を片付ける必要があります。具体的には、Angularがコンポーネントを破棄する前にサブスクライブを解除する必要があります。そうしないと、メモリリークが発生する可能性があります。 メソッドObservable内のサブスクライブを解除しますngOnDestroy。 private sub: any; ngOnInit() { this.sub = this.route.params.subscribe(params => { let id = +params['id']; // (+) converts string 'id' to a number this.service.getHero(id).then(hero => this.hero = hero); }); …

7
委任:AngularでのEventEmitterまたはObservable
Angularで委任パターンのようなものを実装しようとしています。ユーザーがをクリックnav-itemすると、次にイベントをリッスンする関数を呼び出して、イベントをリッスンする他のコンポーネントによって処理されるイベントを生成したいと思います。 これがシナリオです:私はNavigationコンポーネントを持っています: import {Component, Output, EventEmitter} from 'angular2/core'; @Component({ // other properties left out for brevity events : ['navchange'], template:` <div class="nav-item" (click)="selectedNavItem(1)"></div> ` }) export class Navigation { @Output() navchange: EventEmitter<number> = new EventEmitter(); selectedNavItem(item: number) { console.log('selected nav item ' + item); this.navchange.emit(item) } } これが観測コンポーネントです: export class …

10
オブザーバーとオブザーバブルはいつ使用すべきですか?
面接官は私に尋ねました: 何ObserverをObservable、いつ使うべきですか? 私は、これらの用語を認識していなかったので、私は戻って家を得たときは約グーグルで始めたObserverとObservable私は別の資源からいくつかのポイントを見つけ、: 1)ObservableはクラスでObserverあり、インターフェースです。 2)ObservableクラスはObserversのリストを保持します。 3)Observableオブジェクトが更新されると、オブジェクトupdate()の各のメソッドが呼び出され、Observer変更されたことが通知されます。 私はこの例を見つけました: import java.util.Observable; import java.util.Observer; class MessageBoard extends Observable { public void changeMessage(String message) { setChanged(); notifyObservers(message); } } class Student implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("Message board changed: " + arg); } } public class MessageBoardTest { …

11
空のObservableを返す
関数more()はObservablegetリクエストからを返すことになっています export class Collection{ public more = (): Observable<Response> => { if (this.hasMore()) { return this.fetch(); } else{ // return empty observable } } private fetch = (): Observable<Response> => { return this.http.get('some-url').map( (res) => { return res.json(); } ); } } この場合hasMore()、trueの場合にのみリクエストを実行できます。それ以外の場合、subscribe()function subscribe is not definedでエラーが発生します。空のオブザーバブルを返すにはどうすればよいですか? this.collection.more().subscribe( (res) =>{ …


6
Angular 2サービスからObservableを作成して返す
これはより「ベストプラクティス」の質問です。3人のプレーヤーがあります:a Component、a Service、a Model。Component呼び出しているServiceデータベースから取得するデータを。Service使用しています: this.people = http.get('api/people.json').map(res => res.json()); を返すObservable。 Componentちょうどを購読することができObservable: peopleService.people .subscribe(people => this.people = people); } ただし、私が本当に欲しいのは、がデータベースから取得したデータから作成されServiceたArray of Modelオブジェクトを返すことですService。がComponentこの配列をsubscribeメソッドで作成するだけでよいことに気付きましたが、サービスがそれを実行してで使用できるようにすると、よりクリーンになると思いますComponent。 どのようにしてその配列を含むService新しいを作成しObservable、それを返すことができますか?

5
http.request()から例外を正しくキャッチする方法は?
私のコードの一部: import {Injectable} from 'angular2/core'; import {Http, Headers, Request, Response} from 'angular2/http'; import {Observable} from 'rxjs/Observable'; import 'rxjs/add/operator/map'; @Injectable() export class myClass { constructor(protected http: Http) {} public myMethod() { let request = new Request({ method: "GET", url: "http://my_url" }); return this.http.request(request) .map(res => res.json()) .catch(this.handleError); // Trouble line. // …

5
Angularのhttpのような静的データからObservableを作成する方法は?
私はこの方法を持つサービスを持っています: export class TestModelService { public testModel: TestModel; constructor( @Inject(Http) public http: Http) { } public fetchModel(uuid: string = undefined): Observable<string> { if(!uuid) { //return Observable of JSON.stringify(new TestModel()); } else { return this.http.get("http://localhost:8080/myapp/api/model/" + uuid) .map(res => res.text()); } } } コンポーネントのコンストラクタで、私は次のようにサブスクライブしています: export class MyComponent { testModel: TestModel; testModelService: …

9
Observable / http / async呼び出しからの応答を角度で返すにはどうすればよいですか?
サーバーにhttpリクエストを送信してデータを取得するオブザーバブルを返すサービスがあります。私はこのデータを使いたいのですが、いつでも手に入れてしまいundefinedます。どうしたの? サービス: @Injectable() export class EventService { constructor(private http: Http) { } getEventList(): Observable<any>{ let headers = new Headers({ 'Content-Type': 'application/json' }); let options = new RequestOptions({ headers: headers }); return this.http.get("http://localhost:9999/events/get", options) .map((res)=> res.json()) .catch((err)=> err) } } 成分: @Component({...}) export class EventComponent { myEvents: any; constructor( private es: …

8
監視可能な配列の長さを確認する方法
私のAngular 2コンポーネントには、Observable配列があります list$: Observable<any[]>; 私のテンプレートには <div *ngIf="list$.length==0">No records found.</div> <div *ngIf="list$.length>0"> <ul> <li *ngFor="let item of list$ | async">item.name</li> </ul> </div> しかし、list $ .lengthは、Observable配列の場合には機能しません。 更新: それはそのようで長さは?。|(非同期リスト$を):私たちの長さを与えますが、コードの下に、まだ動作しません。 <div> Length: {{(list$ | async)?.length}} <div *ngIf="(list$ | async)?.length>0"> <ul> <li *ngFor="let item of (list$ | async)"> {{item.firstName}} </li> </ul> </div> </div> 誰でも私がObservable配列の長さをチェックする方法を教えてください。

5
Angular 4+ ngOnDestroy()サービス中-オブザーバブルを破棄
角度のあるアプリケーションではngOnDestroy()、コンポーネント/ディレクティブのライフサイクルフックがあり、このフックを使用してオブザーバブルをサブスクライブ解除します。 @injectable()サービスで作成されたオブザーバブルをクリア/破壊したい。ngOnDestroy()サービスでも利用できるという投稿をいくつか見ました。 しかし、それは良い習慣であり、それを行う唯一の方法であり、いつ呼び出されるのですか?誰かが明確にしてください。

1
TypeScriptを使用してAngular2のhttpデータからRxJS Observableをチェーンする
私は現在、AngularJS 1. *で過去4年間楽しく働いた後、Angular2とTypeScriptを自分で習得しようとしています!私はそれが嫌いだと認めざるを得ませんが、私のエウレカの瞬間が間近に迫っていることは確かです...とにかく、私はダミーアプリに、JSONを提供する、私が書いた音声バックエンドからhttpデータをフェッチするサービスを記述しました。 import {Injectable} from 'angular2/core'; import {Http, Headers, Response} from 'angular2/http'; import {Observable} from 'rxjs'; @Injectable() export class UserData { constructor(public http: Http) { } getUserStatus(): any { var headers = new Headers(); headers.append('Content-Type', 'application/json'); return this.http.get('/restservice/userstatus', {headers: headers}) .map((data: any) => data.json()) .catch(this.handleError); } getUserInfo(): any { …

5
遅延のあるオブザーバブルを作成するにはどうすればよいですか
質問 テストの目的でObservable、実際のhttp呼び出しによって返されるオブザーバブルを。に置き換えるオブジェクトを作成していますHttp。 私のobservableは次のコードで作成されています: fakeObservable = Observable.create(obs => { obs.next([1, 2, 3]); obs.complete(); }); 問題は、この観測可能なものがすぐに放出されるということです。その放出にカスタム遅延を追加する方法はありますか? 追跡 私はこれを試しました: fakeObservable = Observable.create(obs => { setTimeout(() => { obs.next([1, 2, 3]); obs.complete(); }, 100); }); しかし、それは機能していないようです。

10
あるObservableシーケンスを別のシーケンスが完了するのを待ってから放出する方法は?
私が持っているObservableと言う、のように: var one = someObservable.take(1); one.subscribe(function(){ /* do something */ }); 次に、私は秒がありObservableます: var two = someOtherObservable.take(1); 今、私がしたいsubscribe()とtwo、私はそれを確認するone前に完了しているtwo加入者が発射されます。 two最初のバッファリングが完了するのを2番目のバッファリング方法で待機させるには、どのようなバッファリング方法を使用できますか? 完了するtwoまで一時停止したいと思いますone。

4
ngForと非同期パイプAngular 2で監視可能なオブジェクトの配列を使用する
Angular 2でObservablesを使用する方法を理解しようとしています。このサービスがあります: import {Injectable, EventEmitter, ViewChild} from '@angular/core'; import {Observable} from "rxjs/Observable"; import {Subject} from "rxjs/Subject"; import {BehaviorSubject} from "rxjs/Rx"; import {Availabilities} from './availabilities-interface' @Injectable() export class AppointmentChoiceStore { public _appointmentChoices: BehaviorSubject<Availabilities> = new BehaviorSubject<Availabilities>({"availabilities": [''], "length": 0}) constructor() {} getAppointments() { return this.asObservable(this._appointmentChoices) } asObservable(subject: Subject<any>) { return new …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.