0
我正在使用REDX傳奇啓動第三方服務,並且我想將錯誤從第三方的回調傳播到傳奇,以便我可以從傳奇中派發適當的操作。我該怎麼做?傳奇中的異步錯誤傳播
在傳奇:
export function * handleFetchProducts() {
try {
const products= yield call(getProducts)
yield put(actions.fetchProductsSuccess(products))
} catch (e) {
yield put(actions.fetchProductsFailure(e))
}
}
在的getProducts:
3210我知道,因爲錯誤正在從異步回調中拋出,我抓不住它在try/catch語句傳奇故事。但是,我只是想知道應該怎樣處理這個問題。
請注意,服務模塊是按原樣構建的,我無法更改其行爲。
任何幫助將是
是否'Service.initialize()'返回一個承諾?如果是,爲什麼你使用'success | error'回調?如果不是 - 爲什麼你將'getProducts'標記爲async,你不'等待'任何東西? –
感謝@YuryTarabanko指出。不,initialize()不返回一個Promise,我編輯了這個問題。 – Hawkes
@YuryTarabanko,對不起,我再次編輯了這個問題,因爲我需要在Promise中包裝getProducts()的成功|錯誤回調以使saga等待它。 – Hawkes