我在我的一个servlet中使用了这个函数:
private setValues() {
this.config.socket.on('config.weather', (values:any) => {
console.log(values);
}
我想外包,所以我得到这样的东西:
private setValues() {
this.config.load('weather').then((values:any) => {
console.log(values);
}
套接字服务中的任何一个:
public load(key: string) {
return new Promise(resolve => {
this.socket.on('config.' + key, values => resolve(values));
});
这适用于第一次调用,但是当套接字再次触发时,它不会被发送到setValues()
函数,因为Promise只能运行一次。
我想我必须使用一个Observable,但我不知道在哪里放置它。
答案 0 :(得分:0)
我使用了一个主题,现在一切正常:
public load(key: string) {
let sub = new Subject();
this.socket.on('config.' + key, values => {
sub.next(values);
});
return sub;
}
和
private setValues() {
this.config.load('weather').subscribe((values:any) => {
console.log(values);
}