var promise = http.get().toPromise();
给出一个执行一次的承诺。
因此,无论调用多少次promise.then()
,http请求都只执行一次。
我怎样才能用可观察量实现相同的目标?:var observable = http.get().???
这样obversable.subscribe()
只执行一次http请求?
你可以像这样使用以下 rxjs 运算符 'take' 导入运算符
import { take } from 'rxjs/operators';
并像这样使用它
this.http.get(`${this.url}/${agentId}/intents/${intentId}`)
.pipe(take(1),
catchError(error => Observable.throw(error)));
但这只会发出一次单个值,即最新值,如果再次调用此函数,不会阻止 Observable 调用请求。
以下代码做到了: 从 'rxjs/operators ' 导入 { shareReplay }
;this.http.get("xxx").pipe(shareReplay(1));