28 lines
808 B
TypeScript
28 lines
808 B
TypeScript
export default function unifyPromiseVue2() {
|
|
try {
|
|
// eslint-disable-next-line no-inner-declarations
|
|
function isPromise(obj) {
|
|
return Boolean(obj) && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
|
|
}
|
|
// Unified vue2 API Promise return format to be consistent with vue3
|
|
// eslint-disable-next-line no-undef
|
|
(uni as any).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]);
|
|
}
|
|
});
|
|
});
|
|
},
|
|
});
|
|
// eslint-disable-next-line no-empty
|
|
} catch (error) { }
|
|
}
|