貝婁是我用來向服務器提交資料的代碼示例以及我收到并保存的回傳
this.apollo.mutate( { mutation: XXXXXXXX, variables: { instance_string: X,
accesstoken: X } })
.subscribe({
next: (data: any ) => {
console.log("data returned from Server", data);
// This data can be sent from the Server in a loop on occassion
this.SaveData(data);
},
error: (err) => {
this.presentToastFail(err);
}
});
有時,服務器會回圈回傳資料。我無法控制服務器,看來這將是很長一段時間內反復出現的錯誤。有沒有一種方法可以確保下一個:只運行一次并忽略服務器可以發送的資料回圈回傳。
uj5u.com熱心網友回復:
看起來您必須使用兩個可管道運算子,例如take(), filter()
:
.pipe(
filter(resp => resp !== undefined && resp !== null),
take(1) // <--- It will only take one successful valid response
)
.subscribe(...)
uj5u.com熱心網友回復:
看起來你也可以使用takeuntil
Takeuntil 參考檔案
const example = evenSource.pipe(
//also give me the current even number count for display
withLatestFrom(evenNumberCount),
map(([val, count]) => `Even number (${count}) : ${val}`),
//when five even numbers have been emitted, complete source observable
takeUntil(1)//this will take 1st response
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/507803.html