From 5b06eaf27b677889af8ec4f5f031cd6c5309a23a Mon Sep 17 00:00:00 2001 From: Vidar Tonaas Fauske Date: Tue, 18 Jun 2019 17:40:17 +0100 Subject: [PATCH 1/5] Cleanup showErrorMessage --- packages/apputils/src/dialog.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/apputils/src/dialog.ts b/packages/apputils/src/dialog.ts index 32c60e4172b5..6cedf580140b 100644 --- a/packages/apputils/src/dialog.ts +++ b/packages/apputils/src/dialog.ts @@ -39,7 +39,7 @@ export function showDialog( * @param error - the error to show in the dialog body (either a string * or an object with a string `message` property). */ -export function showErrorMessage( +export async function showErrorMessage( title: string, error: any, buttons: ReadonlyArray = [ @@ -60,11 +60,13 @@ export function showErrorMessage( title: title, body: body, buttons: buttons - }).then(() => { - Private.errorMessagePromiseCache.delete(key); }); Private.errorMessagePromiseCache.set(key, dialogPromise); - return dialogPromise; + try { + await dialogPromise; + } finally { + Private.errorMessagePromiseCache.delete(key); + } } } From 5ec299d81476ee37ed62c44f0b5245a3a05ca050 Mon Sep 17 00:00:00 2001 From: Vidar Tonaas Fauske Date: Tue, 18 Jun 2019 17:51:02 +0100 Subject: [PATCH 2/5] Use Promsie.finally? --- packages/apputils/src/dialog.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/apputils/src/dialog.ts b/packages/apputils/src/dialog.ts index 6cedf580140b..de29167e4096 100644 --- a/packages/apputils/src/dialog.ts +++ b/packages/apputils/src/dialog.ts @@ -39,7 +39,7 @@ export function showDialog( * @param error - the error to show in the dialog body (either a string * or an object with a string `message` property). */ -export async function showErrorMessage( +export function showErrorMessage( title: string, error: any, buttons: ReadonlyArray = [ @@ -60,13 +60,11 @@ export async function showErrorMessage( title: title, body: body, buttons: buttons + }).finally(() => { + Private.errorMessagePromiseCache.delete(key); }); Private.errorMessagePromiseCache.set(key, dialogPromise); - try { - await dialogPromise; - } finally { - Private.errorMessagePromiseCache.delete(key); - } + return dialogPromise; } } From 12adf41bc3f1291087c9666cd74e1050feeb843f Mon Sep 17 00:00:00 2001 From: Vidar Tonaas Fauske Date: Thu, 20 Jun 2019 07:48:17 +0100 Subject: [PATCH 3/5] Use catch/throw instead of finally --- packages/apputils/src/dialog.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/apputils/src/dialog.ts b/packages/apputils/src/dialog.ts index de29167e4096..42b29f35e3ca 100644 --- a/packages/apputils/src/dialog.ts +++ b/packages/apputils/src/dialog.ts @@ -60,8 +60,11 @@ export function showErrorMessage( title: title, body: body, buttons: buttons - }).finally(() => { + }).then(() => { Private.errorMessagePromiseCache.delete(key); + }).catch((error) => { // TODO: Use .finally() above when supported + Private.errorMessagePromiseCache.delete(key); + throw(error); }); Private.errorMessagePromiseCache.set(key, dialogPromise); return dialogPromise; From b19a1900322b1010d0a4cce137803b1a51e1d9e8 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Thu, 20 Jun 2019 07:45:19 -0700 Subject: [PATCH 4/5] Update catch to be in parallel with then for showErrorMessage --- packages/apputils/src/dialog.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/apputils/src/dialog.ts b/packages/apputils/src/dialog.ts index 42b29f35e3ca..04f8c44d7e49 100644 --- a/packages/apputils/src/dialog.ts +++ b/packages/apputils/src/dialog.ts @@ -62,7 +62,7 @@ export function showErrorMessage( buttons: buttons }).then(() => { Private.errorMessagePromiseCache.delete(key); - }).catch((error) => { // TODO: Use .finally() above when supported + }, (error) => { // TODO: Use .finally() above when supported Private.errorMessagePromiseCache.delete(key); throw(error); }); From f11df023003ad52d3405e2c2e10601040a77b366 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Thu, 20 Jun 2019 07:55:34 -0700 Subject: [PATCH 5/5] prettier updates --- packages/apputils/src/dialog.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/apputils/src/dialog.ts b/packages/apputils/src/dialog.ts index 04f8c44d7e49..0d7f843328e4 100644 --- a/packages/apputils/src/dialog.ts +++ b/packages/apputils/src/dialog.ts @@ -60,12 +60,16 @@ export function showErrorMessage( title: title, body: body, buttons: buttons - }).then(() => { - Private.errorMessagePromiseCache.delete(key); - }, (error) => { // TODO: Use .finally() above when supported - Private.errorMessagePromiseCache.delete(key); - throw(error); - }); + }).then( + () => { + Private.errorMessagePromiseCache.delete(key); + }, + error => { + // TODO: Use .finally() above when supported + Private.errorMessagePromiseCache.delete(key); + throw error; + } + ); Private.errorMessagePromiseCache.set(key, dialogPromise); return dialogPromise; }