Pergunta

É possível habilitar o EcmaScript 6 Harmonia Proxies em nodejs?Se assim for, quais são os prós e contras?E existe alguma documentação sobre como usá-los?Obrigado !

Foi útil?

Solução

Invocando o nó com node --harmony-proxies deve fazer o truque.

Prós:proxies são um recurso muito poderoso quando você realmente precisa deles.

Contras:proxies são demasiado poderoso recurso quando você não precisa deles (que deve ser a maior parte do tempo).Além disso, a execução deve ainda ser considerada experimental.

Como para a documentação, tudo o que existe realmente é a atm é a Harmonia wiki, em particular, esta página, o que reflete a atual implementação de proxies em V8 (e, portanto nó):

http://wiki.ecmascript.org/doku.php?id=harmony:proxies

Outras dicas

eu recomendo harmonia-refletir, o que torna fácil e.g.configurar get/set armadilhas:

ATUALIZAÇÃO cuidado, abaixo CoffeeScript

require 'harmony-reflect'

handler =

  get: ( target, name ) ->
    console.log 'get' name
    return target[ name ]

  set: ( target, name, value ) ->
    console.log 'set' name
    target[ '%is-clean' ] = no if value isnt target[ name ]
    if value is undefined then delete target[ name ]
    else                       target[ name ] = value
    return value

clean = ( x ) ->
  x[ '%is-clean' ] = yes
  return x

p = Proxy {}, handler
p[ 'a' ] = 1
p[ 'b' ] = undefined
console.log p[ 'a' ], p[ 'b' ]
console.log "c" of p, p[ 'c' ]
console.log p
clean p
p[ 'a' ] = 1
console.log p
p[ 'a' ] = 42
console.log p

o acima é o inceptive código para fazer "transparente persistência de objeto' em JavaScript.usando harmony-reflect, torna-se trivial para fazer com que todos os get e set ações em um objeto obter interceptada—nesta versão de demonstração, vamos definir um %is-clean atributo, portanto, podemos testar se os membros do objeto ter sido alterado, e nós também excluir os membros que tenham sido definidas para indefinido.

Você pode usar o Pimped-Proxy que uma implementação leve de proxies, facilitando a declaração e o ES5 compatível. Ao contrário do proxy nativo, só pode proximidades conhecidas no tempo de criação.

https://github.com/boulangerie/pimped-proxy

Proxy agora está disponível nativamente em versões do nó>= 6.

Proxies Harmony não funcionam tão bem para Nodejs, porque são efetivamente chamadas de função de tipo síncrono.Ou seja, você não pode implementar um método proxy que é assíncrono.

Veja este repositório Github para exemplos: https://github.com/mschwartz/silkjs-harmony

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top