0

我需要写一个函数:

function doTestConnCall(param1, param2, callbackfun)

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

  1. 如何做到这一点?
  2. 是否可以在单个方法中传递 2 个回调。说doTestConnCall(param1,callback1,callback2)

认为我缺少一些基础知识。谁能带领我

4

4 回答 4

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

于 2012-11-25T07:21:42.393 回答
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();   
    }
    
于 2012-11-25T07:22:24.967 回答
0

JS 中的函数是顶级构造。这意味着function hello() {}与 相同var hello = function() {};。所以如果你想传递hello给上面的函数,你可以在使用上面的任何一种方法doTestConnCall(param1, param2, hello)定义之后调用hello()

于 2012-11-25T07:23:19.543 回答
0

这就是你实现它的方式。

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

function doTestConnCall(param1, param2, callbackfun){
   DO YOUR LOGIC
   callbackfun() // CALL YOUR CALLBACK
}
于 2012-11-25T07:23:21.243 回答