相关疑难解决方法(0)

Angular2:取消订阅服务中的http observable

从http订阅中取消订阅Angular2服务的最佳做法是什么?

目前我这样做,但我不确定这是否是最好的方式.

import { Injectable } from "@angular/core";
import { Http } from "@angular/http";

import { Subject } from "rxjs/Subject";
import { ISubscription } from "rxjs/Subscription";

@Injectable()
export class SearchService {
    private _searchSource = new Subject<any>();

    public search$ = this._searchSource.asObservable();

    constructor(private _http: Http) {}

    public search(value: string) {
        let sub: ISubscription = this._http.get("/api/search?value=" + value)
            .map(response => <any>response.json())
            .do(data => this._searchSource.next(data))
            .finally(() => sub.unsubscribe()).subscribe();
    }

}
Run Code Online (Sandbox Code Playgroud)

unsubscribe rxjs5 angular

32
推荐指数
3
解决办法
1万
查看次数

标签 统计

angular ×1

rxjs5 ×1

unsubscribe ×1