В AngularJS (и я уверен, что видел его в другом месте) вы передаете функцию с параметрами для ng-click. т.е.
<div ng-click="myFunc(param)">Click Me</div>
То, что я хочу сделать, это передать функцию с такими параметрами, как обратный вызов в JS. То есть.
setTimeout(myFunc(param), 2000);
Я полагаю, что это должно быть возможно, так как Угловая кажется, что он ее снял, но может найти его где угодно.
PS. прецедентом для этого является создание setTimeout, который работает с обещаниями, поэтому я могу вернуть его в цепочке обещаний. в случае, если вас это интересует, вот где я застрял:
function qTimeout(fn, duration){
var deferred = q.defer();
setTimeout(function () {
fn(*grr*)
.then(deferred.resolve)
.catch(deferred.reject)
})
return deferred.promise;
}
Что вы пытаетесь выяснить, это 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
будет myFunc2
в setTimeout
после 2000 мс.
$timeout
. Он оборачиваетsetTimeout
, возвращает обещание и может быть связан. docs.angularjs.org/api/ng/service/$timeout