gpt4 book ai didi

typescript - Angular2 Http 双订阅

转载 作者:太空狗 更新时间:2023-10-29 18:14:27 24 4
gpt4 key购买 nike

是否可以调用Subscribe方法两次?

我正在尝试构建 api 工厂,它在工厂中保存数据,但该数据可以在每次 ajax 调用时由不同的组件使用。

工厂

export class api {

result = [];

constructor (protected http: Http) { }

getData ()
{
return this.http.get('./friends.json').map((res: Response) => res.json()).subscribe(res => this.result = res);
}
}

测试组件,再次调用subscribe方法

export class TestPage {

showListResult;

constructor (protected api: api) {

this.api.getData().subscribe(res => this.showListResult = res)
}

}

最佳答案

您可以返回新的 Observable 包装器。这样的事情应该有效:

import {Observable} from 'rxjs/Observable'

export class api {

result = [];

constructor (protected http: Http) { }

getData () {
return new Observable(observer => {
this.http.get('./friends.json')
.map((res: Response) => res.json())
.subscribe(res => {
this.result = res;
observer.next(res);
observer.complete();
});
});
}
}

关于typescript - Angular2 Http 双订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35397710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com