From 1686f50b379238803ae85521bec5611addd48680 Mon Sep 17 00:00:00 2001 From: Dreamacro <305009791@qq.com> Date: Mon, 30 Sep 2019 16:51:49 +0800 Subject: [PATCH] Chore: improve createAsyncSingleton --- src/lib/asyncSingleton.ts | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/src/lib/asyncSingleton.ts b/src/lib/asyncSingleton.ts index cd38dbb..86bb8e4 100644 --- a/src/lib/asyncSingleton.ts +++ b/src/lib/asyncSingleton.ts @@ -1,29 +1,15 @@ export function createAsyncSingleton (fn: () => Promise): () => Promise { let promise: Promise | null = null - let instance: T | null = null - async function fetch () { + return async function () { if (promise) { return promise } - promise = fn() return promise - .then(r => { - promise = null - return r - }) .catch(e => { promise = null - return e + throw e }) } - - return async function () { - if (instance) { - return instance - } - - return fetch() - } }