Look at this jQuery code:
var promise = new Deferred(),
some;
some = function(promise) {
// do cool things
promise.resolve();
};
promise.then(/* callback cool things */);
// init everything
some(promise);
I am not sure about architecture correctness of such approach, but I used it for long time and it is convenient for me.
In native JavaScript I can not use such approach. Constructor new Promise()
requires a callback parameter, so I can not pass instance of Promise
as a parameter.
So my question is: how can I predefine JavaScript native promise, pass it as a parameter to function and the resolve?
The execution flow would be a little different, but basically work the same way:
function some(resolve, reject) {
resolve();
}
var promise = new Promise(some);
promise.then(/* callback cool things */);
Instead of some
getting passed the promise itself, it gets passed the resolve
and reject
functions. So, the dependency is just the other way round.