Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Proxy JS: operando en toda la ruta de obtención

Tengo una tienda remota de clave/valor con una interfaz simple .get()/.put() . Quiero llamar a someProxyObject.route1.route2.route3 y hacer que esto se resuelva en una llamada a storageObject.retrieve(["route1", "route2", "route3"]) . El objetivo es tratar el almacenamiento remoto como un objeto local. Actualmente estoy usando el siguiente código para recopilar la ruta.

 var validator = { route: [], get(target, key) { this.route.push(key) console.log(String(this.route), "get"); return new Proxy(target, validator) }, set (target, key, value) { this.route.push(key) console.log(String(this.route), "set"); return false }, deleteProperty (target, key) { this.route.push(key) console.log(String(this.route), "delete"); return target; } } let storage = new Proxy({}, validator); storage.p1.p2.p3.p4 = 1 validator.route = [] storage.p1.p2.p3.p4

Como puede ver al ejecutar el código anterior, cuando configuro o elimino un valor, hay una recurrencia de llamadas de get y luego una llamada de delete/set de resolución. El problema es no tener una llamada de resolución para una cadena de get simple. ¿Puede idear un método para actuar sobre el .routeX final para permitir una resolución final? EDITAR: Mi objetivo es evitar colocar una llamada final como .resolve al final de la cadena

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Sé que esto no responde a su pregunta, pero podría agregar una .route adicional para resolver la cadena. Ni siquiera necesitas un setter:

 function createStorage() { const route = []; function createProxy() { return new Proxy({}, { get(_0, key) { if (key === 'route') { return route; } route.push(key); return createProxy(); } }); } return createProxy(); } const storage = createStorage(); console.log(storage.p1.p2.p3.route); //=> ['p1', 'p2', 'p3']

De la misma manera, también podría tener una clave clear que restablecerá la matriz de rutas para que no acceda al estado directamente.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda