FP

执行调度

通过闭包,保留原 执行函数,创建新函数获取 arguments ,再添加调度策略包裹真实执行过程,真实执行过程中再通过闭包获取原函数,原参数 在调度许可后执行。

  1. const batch = (callback) => {
  2. let result: T = null
  3. try {
  4. batchStart()
  5. result = callback()
  6. } finally {
  7. batchEnd()
  8. }
  9. return result
  10. }
  11. const register = (callback) => {
  12. return (...args) => {
  13. return batch(() => {
  14. return callback.apply(target, args)
  15. })
  16. }
  17. }
  18. const test = (a, b, c) => {}
  19. const testResisted = register(cb)