如何在JavaScript函数中使用回调函数
我对JavaScript非常陌生,需要在java脚本函数中使用回调函数。我不知道如何使用回调函数。下面是我的代码:如何在JavaScript函数中使用回调函数,javascript,callback,Javascript,Callback,我对JavaScript非常陌生,需要在java脚本函数中使用回调函数。我不知道如何使用回调函数。下面是我的代码: function SelectedFeature() { // Here is my code call_Method1(); call_Method2(); } 上述函数中的问题是,call\u method2()在call\u Method1()结束其执行之前开始执行。为了解决这个问题,有人告诉我使用回调函数。现在,如何在我的SelectedFeature()
function SelectedFeature() {
// Here is my code call_Method1();
call_Method2();
}
上述函数中的问题是,call\u method2()
在call\u Method1()
结束其执行之前开始执行。为了解决这个问题,有人告诉我使用回调函数。现在,如何在我的SelectedFeature()
函数中使用回调函数?请使用代码示例进行解释
我正在
调用方法1()
中发出异步请求。我需要call\u Method2()
应该在完成执行call\u method1()
后调用。但是在我的例子中,call\u method2()
在call\u method1()
完成执行之前调用。现在我该怎么解决这个问题 您使用什么来执行异步调用?您是自己编写的还是使用JQuery之类的库
您只需在方法1启动时设置为true,然后在方法1结束时设置为false,就可以简单地将bool设置为“working”。然后,您可以让method2在工作时等待 您必须重构
调用_method1()
以在回调完成执行后接受并执行回调:
call_method1(call_method2);
及
函数是一级公民,因此通过使用它们的名称来引用它们,您可以像传递任何其他值一样传递它们
如果您发布
调用方法1
的代码,我们可以提供更好的帮助。Felix已经回答了上述问题。受他的回答和我在当前项目中遇到的一个问题的启发,我写了一个小要点,其中有一个类,增加了一点额外的安全性
总之,传递回调函数的方式与传递变量的方式相同。然后接收器将触发它作为一个函数
myCoolFunction: function( data ) {
// Do some thing with response
}
$.get( '/some/cool/url', myCoolFunction );
在上面的$中,获取数据后,get
使用参数data
回调mycolfunction
如果myCoolFunciton是一个变量,会发生什么。这取决于接收器如何处理输入
请注意,我有一个CoffeeScript类(及其JavaScript编译),它将执行一些安全检查
它不做任何神奇的事情,检查它是否是一个函数并返回,如果不是,则返回一个空函数,以减少JS错误的可能性 我不认为那叫什么方法2();在调用_Method1()结束之前开始。我非常肯定(一定是这样)call_Method1()返回的结果是正确的。正如您已经说过的,问题在于method1中的异步调用。要解决这个问题,需要查看call_Method1()的代码;为了了解异步调用的外观以及如何使用回调,我将添加一个if语句来检查回调的类型=='function'。只是为了安全。@yoavmatchulsky:说得好。。。我只是懒惰;)。。。将添加它。您可以使用==而不是strict==,因为typeof将始终返回字符串:您也不需要
typeof
:if(callback.constructor==Function)
也可以
myCoolFunction: function( data ) {
// Do some thing with response
}
$.get( '/some/cool/url', myCoolFunction );