hooks icon indicating copy to clipboard operation
hooks copied to clipboard

feature/imperative-set-timeout

Open citrus327 opened this issue 1 year ago • 2 comments

[English Template / 英文模板]

🤔 这个变动的性质是?

  • [ ] 新特性提交
  • [ ] 日常 bug 修复
  • [ ] 站点、文档改进
  • [ ] 演示代码改进
  • [ ] TypeScript 定义更新
  • [ ] 包体积优化
  • [ ] 性能优化
  • [x] 功能增强
  • [ ] 国际化改进
  • [ ] 重构
  • [ ] 代码风格优化
  • [ ] 测试用例
  • [ ] 分支合并
  • [ ] 其他改动(是关于什么的改动?)

🔗 相关 Issue

https://github.com/alibaba/hooks/issues/2537

💡 需求背景和解决方案

提供主动调用setTimeout的能力

useTimeout(
  fn: () => void,
  delay?: number | undefined
  options?: { defaultActive?: boolean }
): {
  clear: () => void;
  start: () => void;
  isActive: boolean;
};

📝 更新日志

  1. 修改返回值为对象类型 【BREAKING CHANGE】
  2. 提供startisActive两个新的返回值,用户可主动调用start进行定时器执行。 【BREAKING CHANGE】
  3. 提供options作为useTimeout的第三个参数,内含defaultActive,默认为true(兼容默认逻辑)
语言 更新描述
🇺🇸 英文
🇨🇳 中文

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项。⚠️

  • [x] 文档已补充或无须补充
  • [x] 代码演示已提供或无须提供
  • [x] TypeScript 定义已补充或无须补充
  • [x] Changelog 已提供或无须提供

citrus327 avatar May 29 '24 06:05 citrus327

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar May 29 '24 06:05 CLAassistant

@liuyib

说明一下

  1. isActive仅代表定时器的激活情况,不代表fn的运行情况,例如 fn运行完成不会将isActive置为false.
  2. 目前目标pr 分支为master,内含breaking改动

citrus327 avatar May 29 '24 06:05 citrus327