From 9fd931f7991398b9a6331d7bc5b8cd7a41491be9 Mon Sep 17 00:00:00 2001 From: fragosti Date: Thu, 1 Nov 2018 13:49:09 -0700 Subject: feat: better handle errors in async fetches --- packages/instant/src/redux/async_data.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'packages/instant/src/redux') diff --git a/packages/instant/src/redux/async_data.ts b/packages/instant/src/redux/async_data.ts index f8dbe9fd4..716558409 100644 --- a/packages/instant/src/redux/async_data.ts +++ b/packages/instant/src/redux/async_data.ts @@ -3,19 +3,20 @@ import * as _ from 'lodash'; import { BIG_NUMBER_ZERO } from '../constants'; import { assetUtils } from '../util/asset'; import { coinbaseApi } from '../util/coinbase_api'; +import { errorFlasher } from '../util/error_flasher'; import { actions } from './actions'; import { Store } from './store'; export const asyncData = { fetchEthPriceAndDispatchToStore: async (store: Store) => { - let ethUsdPrice = BIG_NUMBER_ZERO; try { - ethUsdPrice = await coinbaseApi.getEthUsdPrice(); - } catch (e) { - // ignore - } finally { + const ethUsdPrice = await coinbaseApi.getEthUsdPrice(); store.dispatch(actions.updateEthUsdPrice(ethUsdPrice)); + } catch (e) { + const errorMessage = 'Error fetching ETH/USD price'; + errorFlasher.flashNewErrorMessage(store.dispatch, errorMessage); + store.dispatch(actions.updateEthUsdPrice(BIG_NUMBER_ZERO)); } }, fetchAvailableAssetDatasAndDispatchToStore: async (store: Store) => { @@ -26,7 +27,10 @@ export const asyncData = { const assets = assetUtils.createAssetsFromAssetDatas(assetDatas, assetMetaDataMap, network); store.dispatch(actions.setAvailableAssets(assets)); } catch (e) { - // ignore + const errorMessage = 'Error fetching available assets'; + errorFlasher.flashNewErrorMessage(store.dispatch, errorMessage); + // On error, just specify that none are available + store.dispatch(actions.setAvailableAssets([])); } } }, -- cgit v1.2.3