组件A订阅服务B中的可观测对象:
A组分:
testMqtt(){
console.log('testMqtt is called');
this.serviceB.connectToBroker().subscribe({
next: (resp) => console.log('response from connection to mqtt: ', resp.connected),
error: (err) => console.log('error from connection to mqtt: ', err)
});
}
服务B:
connectToBroker(){
let client = mqtt.connect(this.url, {clientId: 'abc123'});
return of(client.on('connect', (packet) => {
console.log('testing value of connected: ', JSON.stringify(packet));
console.log('value of client connected: ', client.connected);
}))
};
这个 idea 是为了在‘res.Connected’(组件A)中反映‘Client.Connected’(服务B)的值.当服务B中的ConnectToBroker()内部的client.Connected的值为true时,为什么来自testMqtt()的console.log总是将res.Connected的值显示为false?我可以在服务B中使用哪个rxjs操作符,以便在返回对组件A中的订阅的响应之前完成client.on回调?