codercup / unibest

unibest - 最好用的 uniapp 开发框架。unibest 是由 uniapp + Vue3 + Ts + Vite4 + UnoCss + UniUI 驱动的跨端快速启动模板,使用 VS Code 开发,具有代码提示、自动格式化、统一配置、代码片段等功能,同时内置了大量平时开发常用的基本组件,开箱即用,让你编写 uniapp 拥有 best 体验。
https://codercup.github.io/unibest-docs/
MIT License
1.31k stars 174 forks source link

fix(hooks): 修复 useRequest 导出的 run 函数异步无效问题 #78

Closed chenli1989 closed 1 month ago

chenli1989 commented 2 months ago
const getFoo = async () => {
  // 修复前,run 不是异步函数,导致代码同步执行, run() 返回是 undefined
  const res = await run()
  originalData.value = res
}
codercup commented 1 month ago

才看到,我看看。感谢PR

codercup commented 1 month ago

但是我还是有疑问,我把数据放到data, run 单独可以执行,为啥要去掉data,改为放到 run 呢?

chenli1989 commented 1 month ago

但是我还是有疑问,我把数据放到data, run 单独可以执行,为啥要去掉data,改为放到 run 呢?

@codercup 在一些业务逻辑处理过程中,会等run函数结果后处理。如果是从data获取,这里会多需要一个监听data的变化后再处理,但是这个监听也可能出现不确定和业务逻辑割裂的情况。如果有run函数的回调,会使用比较灵活和处理业务逻辑也相对准确。当然,使用data已经可以覆盖大部分业务场景。