Uni.js 拦截器:将返回值处理为 Promise 对象
这段代码的作用是给 uni 对象添加一个拦截器,用于处理返回值。
拦截器的功能是判断返回值 res 是否为一个对象或者函数,并且具有 then 方法,如果不满足这些条件,则直接返回 res。如果满足条件,则创建一个新的 Promise 对象,并在 Promise 中使用 res.then() 方法进行处理。如果 then 方法返回的数组的第一个元素存在,则使用 reject 方法将其作为参数传递给 Promise 的 reject 函数;否则,使用 resolve 方法将数组的第二个元素作为参数传递给 Promise 的 resolve 函数。
简而言之,这段代码的目的是将返回值统一处理为 Promise 对象,方便后续的异步操作。
具体代码如下:
uni.addInterceptor({
returnValue(res) {
if (!(!!res && (typeof res === 'object' || typeof res === 'function') && typeof res.then === 'function')) {
return res;
}
return new Promise((resolve, reject) => {
res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
});
},
});
原文地址: https://www.cveoy.top/t/topic/qqlN 著作权归作者所有。请勿转载和采集!