【问题标题】:How to add a new callback method without affecting other calls to the method JavaScript如何在不影响对方法 JavaScript 的其他调用的情况下添加新的回调方法
【发布时间】:2017-08-16 08:53:18
【问题描述】:

我有以下方法

DoSomething(param1, param2, onCloseCallback, param3, param4)

我需要在 DoSomenthing 结束时添加另一个回调方法来调用 不影响对该方法的其他调用。

有什么建议吗?

【问题讨论】:

  • 我认为您的意思是“函数”而不是“方法”,“方法”通常与 OOP 中的对象相关联。
  • DoSomething(param1, param2, onCloseCallback, param3, param4, anotherCallback) ?
  • 如果你的函数参数增长到六个左右,你真的应该考虑将其重构为更易于管理的东西。
  • function DoSomething(param1, param2, onCloseCallback, param3, param4) { /* old code */ /* call the new code that you want to call at the end */ }怎么样
  • 也许您想重构它以使用 Promise 来更轻松地链接回调。

标签: javascript callback


【解决方案1】:
DoSomething(param1, param2, onCloseCallback, param3, param4, anotherCallback) {
  //previous implementation here
  anotherCallback && anotherCallback()
}

这样,对 DoSomething 的现有调用不会受到更改的影响,对 DoSomething 的新调用最后会调用 anotherCallback。

【讨论】:

    【解决方案2】:

    我认为你可以简单地将另一个回调放在参数的末尾,然后在函数的底部调用你的回调:

    function DoSomething(param1, param2, onCloseCallback, param3, param4, onEndCallback) {
    
      // ....
    
      if(onEndCallback) onEndCallback();
    }
    

    【讨论】:

      猜你喜欢
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 2020-01-03
      相关资源
      最近更新 更多