From 2916e1176256ba068c87b48c81230f35af6d16f2 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 14 Apr 2018 03:40:12 +0900 Subject: [PATCH] Fix bug --- src/client/app/common/mios.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/client/app/common/mios.ts b/src/client/app/common/mios.ts index ccc73eebc..f4bb60fcd 100644 --- a/src/client/app/common/mios.ts +++ b/src/client/app/common/mios.ts @@ -441,10 +441,14 @@ export default class MiOS extends EventEmitter { document.body.appendChild(spinner); } + const onFinally = () => { + if (--pending === 0) spinner.parentNode.removeChild(spinner); + }; + // Append a credential if (this.isSignedIn) (data as any).i = this.i.token; - return new Promise((resolve, reject) => { + const promise = new Promise((resolve, reject) => { const viaStream = this.stream.hasConnection && (localStorage.getItem('apiViaStream') ? localStorage.getItem('apiViaStream') == 'true' : true); @@ -453,8 +457,6 @@ export default class MiOS extends EventEmitter { const id = Math.random().toString(); stream.once(`api-res:${id}`, res => { - if (--pending === 0) spinner.parentNode.removeChild(spinner); - if (res.res) { resolve(res.res); } else { @@ -489,8 +491,6 @@ export default class MiOS extends EventEmitter { credentials: endpoint === 'signin' ? 'include' : 'omit', cache: 'no-cache' }).then(async (res) => { - if (--pending === 0) spinner.parentNode.removeChild(spinner); - const body = res.status === 204 ? null : await res.json(); if (this.debug) { @@ -508,6 +508,10 @@ export default class MiOS extends EventEmitter { }).catch(reject); } }); + + promise.then(onFinally, onFinally); + + return promise; } /**