这段代码的作用是给 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]));
		});
	},
});
Uni.js 拦截器:将返回值处理为 Promise 对象

原文地址: https://www.cveoy.top/t/topic/qqlN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录