0
メッセージを送信し、最終的に応答を受け取る標準WebSocketを使用しています。以前は$q.defer
を使用し、遅延オブジェクトを保存して約束を返しました。レスポンスハンドラは、格納されている遅延オブジェクトをルックアップし、値を使用して解決します。Observablesを延期する
これは観測可能で可能ですか?
// As part of the websocket setup
websocket.onmessage = function(message) {
uuid = message.someResponse.uuid;
this._observables[uuid].create(function(observer) {
observer.onNext(response);
observer.onCompleted();
});
}
public sendRequest(request : any) : Observable<any> {
this.sendMessage(request);
return this._observables[request[Object.keys(request)[0]].uuid] = new Observable();
}
// Inside some requesting method
var observable = this.sendRequest(request);
observable.subscribe(
response => console.log(response),
response => console.log(response.error),
() => {
delete this._callbacks[uuid];
}
);
はRxJSが既にWebSocketををサポートし、車輪の再発明をしないでください。 –