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

697
Visualizações
¿La espera de nivel superior tiene un tiempo de espera?

Con la espera de nivel superior aceptada en ES2022, me pregunto si es seguro asumir que await import("./path/to/module") no tiene ningún tiempo de espera. Esto es lo que me gustaría hacer:

 // src/commands/do-a.mjs console.log("Doing a..."); await doSomethingThatTakesHours(); console.log("Done.");
 // src/commands/do-b.mjs console.log("Doing b..."); await doSomethingElseThatTakesDays(); console.log("Done.");
 // src/commands/do-everything.mjs await import("./do-a"); await import("./do-b");

Y esto es lo que espero ver al ejecutar el node src/commands/do-everything.mjs :

 Doing a... Done. Doing b... Done.

No pude encontrar ninguna mención del tiempo de espera de espera de nivel superior, pero me pregunto si lo que estoy tratando de hacer es un mal uso de la función. En teoría, Node.js (o Deno) podría generar una excepción después de alcanzar un límite de tiempo predefinido (por ejemplo, 30 segundos).

Así es como me he estado acercando a la misma tarea antes de TLA:

 // src/commands/do-a.cjs import { autoStartCommandIfNeeded } from "@kachkaev/commands"; const doA = async () => { console.log("Doing a..."); await doSomethingThatTakesHours(); console.log("Done."); } export default doA; autoStartCommandIfNeeded(doA, __filename);
 // src/commands/do-b.cjs import { autoStartCommandIfNeeded } from "@kachkaev/commands"; const doB = async () => { console.log("Doing b..."); await doSomethingThatTakesDays(); console.log("Done."); } export default doB; autoStartCommandIfNeeded(doB, __filename);
 // src/commands/do-everything.cjs import { autoStartCommandIfNeeded } from "@kachkaev/commands"; import doA from "./do-a"; import doB from "./do-b"; const doEverything = () => { await doA(); await doB(); } export default doEverything; autoStartCommandIfNeeded(doEverything, __filename);

autoStartCommandIfNeeded() ejecuta la función si __filename coincide con require.main?.filename .

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

0

Hasta donde yo sé, no hay tiempo de espera por defecto en async-await. Existe el paquete await-timeout, por ejemplo, que agrega un comportamiento de tiempo de espera. Ejemplo:

 import Timeout from 'await-timeout'; const timer = new Timeout(); try { await Promise.race([ fetch('https://example.com'), timer.set(1000, 'Timeout!') ]); } finally { timer.clear(); }

Tomado de los documentos: https://www.npmjs.com/package/await-timeout

Como puede ver, se crea una instancia de Timeout y su método set define el tiempo de espera y el mensaje de tiempo de espera.

over 4 years ago · Santiago Trujillo Relatório

0

Respuesta: No, no hay un tiempo de espera de nivel superior en una espera.

Esta función en realidad se está utilizando en Deno para un servidor web, por ejemplo:

 import { serve } from "https://deno.land/std@0.103.0/http/server.ts"; const server = serve({ port: 8080 }); console.log(`HTTP webserver running. Access it at: http://localhost:8080/`); console.log("A"); for await (const request of server) { let bodyContent = "Your user-agent is:\n\n"; bodyContent += request.headers.get("user-agent") || "Unknown"; request.respond({ status: 200, body: bodyContent }); } console.log("B");

En este ejemplo, "A" se imprime en la consola y "B" no hasta que se apaga el servidor web (lo que no sucede automáticamente).

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