Это часть более крупной проблемы, но как я могу связать вызовы методов в классе, когда для получения данных требуется promise
для получения данных.
Следующее не будет работать, когда this.promise
присваивается каждый раз, функция уже вернулась с this
class Test {
constructor(promise) {
this.promise = promise;
}
add(x) {
this.promise.then(y => {
this.promise = new Promise(resolve => {
resolve(x + y);
});
});
return this;
}
multiply(x) {
this.promise.then(y => {
this.promise = new Promise(resolve => {
resolve(x * y);
});
});
return this;
}
answer() {
this.promise.then(x => {
console.log(x);
});
}
}
function getNumber(num) {
const promise = new Promise(resolve => {
resolve(num);
});
return new Test(promise);
}
const num = getNumber(30);
num.add(20).multiply(2).answer(); // Outputs 33 instead of 100: (30 + 20) * 2