2
假設我有函數使http調用並返回Observable與用戶的詳細信息。如何延遲發出錯誤的Observable
如果用戶不存在,則返回發出錯誤的Observable。
// Get user by id
function getUser(id) {
return Rx.Observable.create(obs => {
if (id === 1) {
obs.next('200 - User found');
obs.complete();
} else {
obs.error('404 - User not found');
}
});
}
// This will print "200 - User found" in the console after 2 seconds
getUser(1)
.delay(2000)
.subscribe(r => console.log(r));
// !!! Delay will not work here because error emmited
getUser(2)
.delay(2000)
.subscribe(null, e => console.log(e));
有什麼辦法來延遲可觀察到發射錯誤?
你爲什麼推遲呢? –
我想延遲對API的每個http請求,無論成功與否(測試應用程序在響應太長時如何表現) –
您正在編寫測試嗎?你通常應該使用瀏覽器網絡選項卡節流功能來模擬長請求 –