Всем привет! Понадобился Promise, который бы выполнялся, когда объект с данными создан. Необходимо, чтобы сторонний код "приостанавливал" выполнение моего скрипта, пока объект не будет готов.
Я считаю, что нет необходимости запихивать длинные куски кода в Promise только ради того, чтобы вызвать resolve() или reject().
Поэксперементировал с аксессорами...
var setter;
var promise = new Promise(function(resolve, reject) {
setter = function(value) {
if(value) {
resolve();
}
};
});
Object.defineProperty(this, "objectCreated", {
set: setter,
get: function() {
return promise;
}
});
// много строк спустя...
this.objectCreated = true;
Hо пришлось отказаться от этой идеи, поскольку появляются лишние переменные. И выглядит это ужасно. Думаю, более элегантным (по аналогии с Promise.resolve()) решением проблемы является метод Promise.prototype.resolve(), который заставляет выполниться Promise.
Promise.prototype.resolve = function(value) {
// как здесь вызвать resolve() ?
};