Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

276
Visualizações
¿Llamar a una función recursivamente en el contexto de "exportación predeterminada"?

Esto puede ser obvio para otros, pero no conozco la sintaxis para llamar a una función de forma recursiva en el siguiente código:

 //request.js export default { send() { ... do stuff ... this.send(); // Can't call "send" of undefined } } //main.js import request from './request' export default class Main extends Component { init() { request.send(); } }

En el ejemplo anterior, llamo a la función de envío desde main.js. Todo esto funciona bien, pero tengo una condición en la función de envío que recuperará la misma función. El problema es que no tengo idea de cómo llamar a la función desde dentro de la función. ¿Cualquiera?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Si desea llamar a la exportación predeterminada de forma recursiva en Node.js, usando Babel.js para transpilar, puede usar el objeto de exportación:

 // request.js export default { send() { console.log('Yo'); setTimeout(() => { exports.default.send(); }, 1000); }, };

Importador:

 // main.js import request from './request'; request.send(); // Writes "Yo" to the console once per second

Esto se debe a que Babel.js simplemente se transforma a la sintaxis de CommonJS. Este:

 export default 42;

Se convierte en esto:

 Object.defineProperty(exports, "__esModule", { value: true }); exports.default = 42;

No tengo idea de cómo puede cambiar esto en una implementación futura de módulos ES6 en Node.js.

over 4 years ago · Santiago Trujillo Relatório

0

No veo ninguna razón por la que this.send() no funcione, dado que está exportando un objeto con un método.

Pero si no funciona, siempre puede usar una expresión de función con nombre:

 export default { send: function send() { … send() … } };

o una declaración de función con nombre:

 function send() { … send() … } export default { send };

o simplemente nombre su objeto exportado:

 export default const request = { send() { … request.send() … } };

Pero recomendaría no exportar un objeto de forma predeterminada y usar exportaciones con nombre en su lugar para que pueda importarlas por separado o en un objeto de espacio de nombres:

 // request.js export default function send() { … send() … }

 // main.js import * as request from './request' … request.send()
over 4 years ago · Santiago Trujillo Relatório

0

bueno, solo como un vistazo rápido, diría que deberías

 console.log(this)

para ver el valor de la misma en la primera y segunda solicitud. No creé su código para verificarlo, pero supongo que es un problema con su contexto.

Todavía no estoy seguro de lo que intenta lograr, pero siempre puede usar

 someFunction.bind(this)

de nuevo, es bastante vago, pero tal vez te dé una idea.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda