function PromiseTimeOut() {
return new Promise((resolve, reject) => {
setTimeout(resolve ,1000);
});
}
const target = {
value: null,
async setValue(value) {
this.value = value;
await this.value; // СЮДА НЕ ПРИХОДИТ ПРОКСИ, а по идее должен
console.log(this.value); //Тут будет NULL
}
};
const proxy = new Proxy(target, {
get(target, prop) {
return target[prop];
},
set(target, prop, value) {
target[prop] = new Promise(async (resolve, reject) => {
await PromiseTimeOut();
resolve();
});
return true;
}
});
proxy.setValue(1);
proxy.setValue(1); //Запускаем
target.setValue(value); // Начало
this.value = value;// Запрос идет к обработчику proxy set
async set(target, prop, value) {//Иполняется
await PromiseTimeOut();
target[prop] = value;
return true;
}
console.log(this.value); //Вернулись в setValue тут PromiseTimeOut уже должна быть исполнена
async set(target, prop, value) {
await PromiseTimeOut();
target[prop] = value;
return true;
}
, и присвоения значенияthis.value = value;
А вообще не очень понятно, что именно вы делаете. Что за стрим?