![](/img/trans.png)
[英]How to create an observable stream of custom objects using RxJS operators
[英]Create Custom Rxjs Observable for network
我是 Rxjs 的初學者,我正在做一個游戲項目,有一個網絡工具是:
通過 function sendPacket
發送,服務器響應功能onReceived
sendPacket: function(packet) {
this._tcpClient.sendToServer(packet);
}
onReceived: function (pkg) {
}
我想重構當前的網絡結構,如 Angular HttpClient: sendPacket return an Observable
我只需要像這樣subscribe
:
network.sendPacket(myPacket).subscribe(response => ...)
我怎樣才能實現這個想法? 太感謝了
如果我正確理解您的問題,那么問題在於您的 onReceived 是一個“全局” function ,它與數據包的發送沒有直接關聯。 您需要在其中存儲觀察者以供以后使用,以便在 onReceived 中訪問它。 就像是:
let savedObserver = null;
sendPacket: function(packet) {
return new Observable(observer => {
this._tcpClient.sendToServer(packet);
savedObserver = observer;
})
}
onReceived: function (pkg) {
if (savedObserver) {
savedObserver.next(pkg);
savedObserver.complete();
savedObserver = null;
}
}
但是,以上假設一次只能有 1 個請求。 為了允許多個並行請求,您需要為每個請求存儲一個可觀察對象,然后能夠將響應鏈接到請求並找到正確的可觀察對象。
這篇文章有答案,它是為絕對初學者准備的,所以你應該抓住一切。
如果您只對發出請求的 Observable 感興趣,請向下滾動到最后
https://justeugen.medium.com/rxjs-for-beginners-1-c87f92f4a9d2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.