JS Proxy Example


```typefacility.progress = new Proxy(facility.progress, {      get: (target, prop) => Reflect.get(target, prop),      set: (target, prop, value) => {        Reflect.set(target, prop, value)      },			apply:(target, thisArg, argumentList){			}    })```
### [JS Proxy](https://texonom.com/js-proxy-bec6f76f2e61473da8102722110bafbf)  & Promise can make await property
```typeasync function parseValue() {  await new Promise(resolve => setImmediate(resolve));  return "parsed value"}let proxy = new Proxy(myObject, {  get(target, prop, receiver) {    if (prop === "attribute") {      let newProp = prop + "_parsed"      if (!(newProp in target)) {        target[newProp] = parseValue()      }      return target[newProp]    } else {      return Reflect.get(target, prop, receiver)    }  },})await proxy.attribute```

### nested proxy
```typeconst coors: number[][] = [[]]  const handler: ProxyHandler<number[] & number[][]> = {    get(target, prop) {      console.log('get', target, prop)      if (target instanceof Array) return new Proxy(Reflect.get(target, prop), handler)      else return Reflect.get(target, prop)    },    set(target, prop, value) {      console.log('set', target, prop, value)      return Reflect.set(target, prop, value)    },  }  const proxy = new Proxy(coors, handler)  console.log(proxy)  proxy[1] = [1, 2]  console.log(proxy)  proxy[0][1] = 3  console.log(proxy)```