JS Proxy Example

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2022 Mar 16 5:6
Editor
Edited
Edited
2022 Mar 30 5:33
Refs
Refs
facility.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
& Promise can make await property

async 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

const 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)

Recommendations