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

295
Visualizações
Vue export import asíncrono esperar paradas

Uso Vue y tengo un método en load.js

 async function loadTask(x) { return await x; // Some async code } export { loadTask };

En un componente de Vue, lo llamo, pero la await impide que se cargue la <template> . Sin await , se ejecuta el siguiente código. ¿Qué echo de menos?

 <script setup> import { loadTask } from './methods/load.js'; const test = loadTask(3); console.log(await test); </script> <template> <div>Does not run</div> </template>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Según la documentación:

async setup() debe usarse en combinación con Suspense, que actualmente sigue siendo una característica experimental. Planeamos finalizarlo y documentarlo en una versión futura, pero si tiene curiosidad ahora, puede consultar sus pruebas (se abre en una ventana nueva) para ver cómo funciona.

https://v3.vuejs.org/api/sfc-script-setup.html#top-level-await

https://v3.vuejs.org/guide/migration/suspense.html#suspense

Vue <configuración de script> El nivel superior espera que la plantilla no se muestre

Entonces, si tiene una configuración asíncrona, debe importar este componente en el padre así:

 import { defineAsyncComponent } from "vue"; export default { components: { HelloWorld: defineAsyncComponent(() => import("./components/HelloWorld.vue") ), }, }; </script>

Y utilízalo en plantilla envuelta en suspenso:

 <template> <suspense> <template #default> <HelloWorld /> </template> <template #fallback> <div>Loading...</div> </template> </suspense> </template>

Manifestación:

https://codesandbox.io/s/reverent-sinoussi-9r5or?file=/src/components/HelloWorld.vue

about 4 years ago · Juan Pablo Isaza Relatório

0

Como se describe en Vue <configuración de script> El nivel superior espera que la plantilla no se muestre , en caso de que no necesite toda la potencia de los componentes asíncronos y Suspense , puede usar onBeforeMount :

 const test = ref(''); onBeforeMount(async () => { test.value = await loadTask(3); console.log(test.value); })

o realice la inicialización dentro de una función async que invoque sin await a que se complete la promesa:

 const test = ref(''); const init = async () => { test.value = await loadTask(3); console.log(test.value); } init();

o use promesa chainig:

 const test = ref(''); loadTask(3).then(task => { test.value = task; console.log(test.value); });

Además, debe encargarse del manejo de errores según corresponda para cada caso.

about 4 years ago · Juan Pablo Isaza 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