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) }
This commit is contained in:
parent
f0d6032edf
commit
f69515952b
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user