回调函数基础知识 - javascript

时间:2012-11-25 07:17:37

标签: javascript callback

我需要写一个函数:

function doTestConnCall(param1, param2, callbackfun)

param1& param2是我在函数内部使用的参数。 第三个参数 - callbackfun是在完成doTestConnCall

后要调用的函数
  1. 如何实现这个目标?
  2. 是否可以在单个方法中传递2个回调。说doTestConnCall(param1,callback1,callback2)
  3. 认为我缺少一些基础知识。任何人都可以带领我

4 个答案:

答案 0 :(得分:1)

您可以这样做:

callbackfun(argument1, argument2);

或:

callbackfun.apply(this, [ argument1, argument2 ]);

或:

callbackfun.call(this, argument1, argument2);

多次回调也可以这样做。例如:

callback1.call(this);
callback2.call(this);

请参阅:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply

并且:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/call

答案 1 :(得分:0)

  1. 在你正在编写的函数中适当地调用任何回调 - 在你描述的情况下,在完成其核心工作之后。

  2. 是的,当然。一个接一个地打电话给他们。

    function multipleCallbacks(arg, arg, callback1, callback2) {
        // Do some stuff
    
        // Do error checking in the real world if you need to be tolerant
        callback1();
        callback2();   
    }
    

答案 2 :(得分:0)

JS中的函数是顶级构造。这意味着function hello() {}var hello = function() {};相同。因此,如果您想将hello传递给上述函数,则可以在使用上述任一方法定义doTestConnCall(param1, param2, hello)后调用hello()

答案 3 :(得分:0)

这就是你实现它的方式。

可以将您想要的内容作为方法参数传递。

function doTestConnCall(param1, param2, callbackfun){
   DO YOUR LOGIC
   callbackfun() // CALL YOUR CALLBACK
}
相关问题