diff --git a/template/default-ts/main.ts b/template/default-ts/main.ts index 5267e7a..84bf957 100755 --- a/template/default-ts/main.ts +++ b/template/default-ts/main.ts @@ -3,5 +3,30 @@ import App from './App.vue' Vue.config.productionTip = false +function isPromise(obj: any) { + return ( + !!obj && + (typeof obj === "object" || typeof obj === "function") && + typeof obj.then === "function" + ); +} + +uni.addInterceptor({ + returnValue(res: any) { + if (!isPromise(res)) { + return res; + } + return new Promise((resolve, reject) => { + res.then((res: [any, any]) => { + if (res[0]) { + reject(res[0]); + } else { + resolve(res[1]); + } + }); + }); + }, +}); + const app = new (typeof App === 'function' ? App : Vue.extend(Object.assign({ mpType: 'app' }, App))) app.$mount(); diff --git a/template/default/main.js b/template/default/main.js index 21fcbeb..a1e6c63 100755 --- a/template/default/main.js +++ b/template/default/main.js @@ -5,7 +5,32 @@ Vue.config.productionTip = false App.mpType = 'app' +function isPromise(obj) { + return ( + !!obj && + (typeof obj === "object" || typeof obj === "function") && + typeof obj.then === "function" + ); +} + +uni.addInterceptor({ + returnValue(res) { + if (!isPromise(res)) { + return res; + } + return new Promise((resolve, reject) => { + res.then((res) => { + if (res[0]) { + reject(res[0]); + } else { + resolve(res[1]); + } + }); + }); + }, +}); + const app = new Vue({ ...App }) -app.$mount() +app.$mount()