在AngularJS中(我确信我在其他地方也看到过),您可以将一个带有params的函数传递给ng-click。即
<div ng-click="myFunc(param)">Click Me</div>
我想做的是在JS中传递一个带有类似params的函数作为回调。Ie.
setTimeout(myFunc(param), 2000);
我想这一定是可能的,因为Angular似乎能成功,但在任何地方都能找到。
PS。它的用例是创建一个与promise一起工作的setTimeout,这样我就可以在promise链中返回它。如果你感兴趣的话,这就是我的困境:
function qTimeout(fn, duration){
var deferred = q.defer();
setTimeout(function () {
fn(*grr*)
.then(deferred.resolve)
.catch(deferred.reject)
})
return deferred.promise;
}
您试图找到的是闭包?
function myFunc(param) {
return function myFunc2() {
// do something with param..
return doAsync(param); // suppose to return promise
};
}
setTimeout(myFunc(param), 2000);
myFunc
将从myFunc
返回具有param
的myFunc2
,并且myFunc2
将在2000ms后在setTimeout
中执行。