【问题标题】:callback issue in class (does not detect calling a function at the method close)类中的回调问题(未检测到在方法关闭时调用函数)
【发布时间】:2021-08-16 18:08:47
【问题描述】:

我必须在对话框类中创建这两个函数,并且无法找出问题所在。

1.onClose - 此方法将回调函数作为参数并将其存储在我们的 Dialog 实例中。

2.close - 此函数将用于关闭对话框。当我们关闭对话框时,我们会想要调用 callbackFunction。

class Dialog {

// constructor(callbackFunction) {
//     stored : this.callbackFunction;
// }
onClose(callbackFunction){
 this.onClose = callbackFunction; // store the callback
  
}

close(callbackFunction) {   
 callbackFunction;// invoke the callback
}

}

我不断收到错误“关闭后未调用回调”。

【问题讨论】:

    标签: javascript class asynchronous callback


    【解决方案1】:
    1. 首先 - 你不要在任何地方调用 callbackFunction - 请注意,调用的意思是:callbackFunction() 而不仅仅是 callbackFunction

    2. 考虑更改变量名,因为可能会发生一些冲突(方法和变量都命名为onClose

    3. close 函数是否应该调用分配给this.onClosecallbackFunction?如果是这样,那么您不需要在那里传递参数,只需调用this.onClose()

    总结一下,我认为应该是这样的:

    class Dialog {
    
    
    onClose(callbackFunction){
     this.closeFn = callbackFunction; // you have to figure out some other name :)
      
    }
    
    close() {   
     this.closeFn();// invoke the callback
    }
    

    【讨论】:

    • 非常感谢!我什至没有意识到我没有调用这个函数。 this.closeFn() 的调用是我最初所做的,但我认为程序可能正在传递另一个函数来证明它。
    猜你喜欢
    • 2015-01-24
    • 2020-10-10
    • 1970-01-01
    • 2022-06-27
    • 2016-10-16
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多