Parcourir la source

feat: 增强 useRequest 钩子,增加返回值和错误处理
- 在 `run` 函数中增加 `return func()`,确保 `run` 函数返回 Promise,以便调用者可以等待其完成。
- 在 `run` 函数中添加 `return data.value`,以便请求成功时返回响应数据。
- 在 `run` 函数中添加 `throw err`,以便请求失败时抛出错误。

这些更改允许调用者直接访问请求结果,并使用 `try...catch` 来处理错误,不必监听data和error处理数据或者错误,从而提高 `useRequest` 钩子的可用性和健壮性。

使用示例:

const { run } = useRequest(fetchData, { immediate: false })

try {
const result = await run()
console.log('成功:', result)
} catch (err) {
console.error('失败:', err)
}

Jinliang il y a 1 an
Parent
commit
f69515952b
1 fichiers modifiés avec 3 ajouts et 1 suppressions
  1. 3 1
      src/hooks/useRequest.ts

+ 3 - 1
src/hooks/useRequest.ts

@@ -24,13 +24,15 @@ export default function useRequest<T>(
   const data = ref<T>(options.initialData)
   const run = async () => {
     loading.value = true
-    func()
+    return func()
       .then((res) => {
         data.value = res.data as UnwrapRef<T>
         error.value = false
+        return data.value
       })
       .catch((err) => {
         error.value = err
+        throw err
       })
       .finally(() => {
         loading.value = false