Допустим, у нас есть объект:
const obj = { element }
и прокси с "асинхронной ловушкой":
const proxy = new Proxy( obj, {
get: async function(obj, prop) {
if(prop === 'element') {
// wait until child element appears ( - just for example,
// in general this function returns delayed value)
const result = wait(obj[prop].querySelector('.child')); //promise
return await result;
}
}
})
Я пробовал код выше, но он не работает. Похоже, что Прокси не распознает асинхронное получение как ловушку и не перехватывает получатель.
Как это исправить? Или:
Есть ли другой способ получить «отложенное» значение свойства объекта без мутации исходного объекта?