在AngularJS中(我非常确定我已经在其他地方看到过)你传递了一个带有参数的函数来进行ng-click。即
<div ng-click="myFunc(param)">Click Me</div>
我想要做的是传递一个带有params的函数作为JS中的回调。即
setTimeout(myFunc(param), 2000);
我认为必须有可能,因为Angular似乎将它拉下来,但可以在任何地方找到它。
PS。用例是创建一个与promises一起使用的setTimeout,这样我就可以在promise链中返回它。万一你感兴趣,这就是我被困住的地方:
function qTimeout(fn, duration){
var deferred = q.defer();
setTimeout(function () {
fn(*grr*)
.then(deferred.resolve)
.catch(deferred.reject)
})
return deferred.promise;
}
答案 0 :(得分:1)
你想要找到的是Closure?
function myFunc(param) {
return function myFunc2() {
// do something with param..
return doAsync(param); // suppose to return promise
};
}
setTimeout(myFunc(param), 2000);
myFunc
将返回myFunc2
param
myFunc
,而myFunc2
将在setTimeout
后执行{2000}。