chore: vue2 模板添加 Promisify 处理

This commit is contained in:
DCloud_LXH 2023-02-14 11:50:43 +08:00
parent b988dc8fd3
commit 6f3f68985a
2 changed files with 51 additions and 1 deletions

View File

@ -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();

View File

@ -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()