From f515df1c01da05cd3003956c7009411f65f4af57 Mon Sep 17 00:00:00 2001 From: Pascal Hartig Date: Wed, 11 Aug 2021 11:02:10 -0700 Subject: [PATCH] Restructure iOS dispatcher initialization Summary: Avoid nested promises and log errors during initialization that were previously thrown away. Reviewed By: mweststrate Differential Revision: D30247859 fbshipit-source-id: 1d9ef871d1861a25a64ed4e895978b04f5b51c7b --- desktop/app/src/dispatcher/iOSDevice.tsx | 33 +++++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/desktop/app/src/dispatcher/iOSDevice.tsx b/desktop/app/src/dispatcher/iOSDevice.tsx index 7a9b13ad2..cdc98169a 100644 --- a/desktop/app/src/dispatcher/iOSDevice.tsx +++ b/desktop/app/src/dispatcher/iOSDevice.tsx @@ -310,14 +310,27 @@ export default (store: Store, logger: Logger) => { if (!store.getState().settingsState.enableIOS) { return; } - iosUtil.isXcodeDetected().then((isDetected) => { - store.dispatch(setXcodeDetected(isDetected)); - if (store.getState().settingsState.enablePhysicalIOS) { - startDevicePortForwarders(); - } - return makeIOSBridge( - store.getState().settingsState.idbPath, - isDetected, - ).then((iosBridge) => queryDevicesForever(store, logger, iosBridge)); - }); + iosUtil + .isXcodeDetected() + .then( + (isDetected) => { + store.dispatch(setXcodeDetected(isDetected)); + if (store.getState().settingsState.enablePhysicalIOS) { + startDevicePortForwarders(); + } + return makeIOSBridge( + store.getState().settingsState.idbPath, + isDetected, + ); + }, + (err) => { + console.error('Failed to initialize iOS dispatcher:', err); + }, + ) + .then( + (iosBridge) => iosBridge && queryDevicesForever(store, logger, iosBridge), + ) + .catch((err) => { + console.error('Error while querying iOS devices:', err); + }); };