Bläddra i källkod

Merge pull request #306 from CN-bj/main

修改当http状态码为200,业务code为错误码中断promise的问题
菲鸽 6 månader sedan
förälder
incheckning
dd08a02d7e
1 ändrade filer med 13 tillägg och 2 borttagningar
  1. 13 2
      src/http/http.ts

+ 13 - 2
src/http/http.ts

@@ -96,9 +96,20 @@ export function http<T>(options: CustomRequestOptions) {
         if (res.statusCode >= 200 && res.statusCode < 300) {
           // 处理业务逻辑错误
           if (code !== ResultEnum.Success0 && code !== ResultEnum.Success200) {
-            throw new Error(`请求错误[${code}]:${responseData.message || responseData.msg}`)
+            uni.showToast({
+              icon: 'none',
+              title: responseData.msg || responseData.message || '请求错误',
+            })
+            //这里不直接抛出错误,会中断promise链条,无法进入finally,在下方return resolve(responseData as T)继续执行,在接口调用可通过判断code来处理业务逻辑
+            //async getSampleEnums() {
+            //  const res = await getSampleEnumsApi();
+            //  if (res.code === ResultEnum.Success200) {
+            //    // 处理成功
+            //  }
+            //},
+            //throw new Error(`请求错误[${code}]:${responseData.message || responseData.msg}`)
           }
-          return resolve(responseData.data as T)
+          return resolve(responseData as T)
         }
 
         // 处理其他错误