Посмотрите на этот код jQuery:
var promise = new Deferred(),
some;
some = function(promise) {
// do cool things
promise.resolve();
};
promise.then(/* callback cool things */);
// init everything
some(promise);
Я не уверен в архитектурной правильности такого подхода, но я им давно пользуюсь и мне он удобен.
В нативном JavaScript я не могу использовать такой подход. Конструктору new Promise()
требуется параметр обратного вызова, поэтому я не могу передать экземпляр Promise
в качестве параметра.
Итак, мой вопрос: как я могу предопределить собственное обещание JavaScript, передать его в качестве параметра для функции и разрешения?