我需要写一个函数:
function doTestConnCall(param1, param2, callbackfun)
param1 & param2 是我在函数中使用的参数。第三个参数 -callbackfun
是完成后调用的函数doTestConnCall
- 如何做到这一点?
- 是否可以在单个方法中传递 2 个回调。说
doTestConnCall(param1,callback1,callback2)
认为我缺少一些基础知识。谁能带领我
我需要写一个函数:
function doTestConnCall(param1, param2, callbackfun)
param1 & param2 是我在函数中使用的参数。第三个参数 -callbackfun
是完成后调用的函数doTestConnCall
doTestConnCall(param1,callback1,callback2)
认为我缺少一些基础知识。谁能带领我
你可以这样做:
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
在您正在编写的函数中适当地调用任何回调 - 在您描述的情况下,在它完成其核心工作之后。
是的当然。一个接一个地叫他们。
function multipleCallbacks(arg, arg, callback1, callback2) {
// Do some stuff
// Do error checking in the real world if you need to be tolerant
callback1();
callback2();
}
JS 中的函数是顶级构造。这意味着function hello() {}
与 相同var hello = function() {};
。所以如果你想传递hello
给上面的函数,你可以在使用上面的任何一种方法doTestConnCall(param1, param2, hello)
定义之后调用hello()
。
这就是你实现它的方式。
可以将您想要的任何内容作为方法参数传递。
function doTestConnCall(param1, param2, callbackfun){
DO YOUR LOGIC
callbackfun() // CALL YOUR CALLBACK
}