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

162
Visualizações
javascript - Obtener API hasta que no haya datos

Estoy usando una API tranquila y necesito publicar algunos datos. pero antes, necesito asegurarme de que la mesa esté vacía. El problema al que me enfrento es que el método de eliminación de esta API devuelve el éxito, pero no elimina los datos de inmediato, estos datos se envían a una cola para eliminarlos lo antes posible.

Entonces, antes de llamar al método de publicación, necesito verificar si tengo algún elemento en esta tabla. ¿Cómo puedo llamar a este método varias veces para asegurarme de que el método de publicación solo se ejecutará cuando la tabla esté vacía?

 async function run() { apiDelete() .then(() => console.log('deleting')) .then(() => { getItems(). then(() => { apiPost() .then(() => console.log('posting...')) .catch(e => console.log(e)) }) }) .catch(e => console.log(e)) return }

Los métodos:

 async function apiPost() { const url = 'https://apipost.com/data/v2/1234' const options = { method: 'POST' } return (await fetch(url, options)).json() } async function apiDelete() { const url = 'https://apidelete.com/data/v2/all' const options = { method: 'DELETE', } return (await fetch(url, options)).json() } async function getItems() { const url = 'https://apiget.com/data/v2/all' const options = { method: 'GET', } return (await fetch(url, options)).json() }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Debe realizar una llamada recursiva con una condición de salida que le solicite salir cuando el número de elementos sea 0.

Una forma podría ser algo como esto:

 async function deleteUntilEmpty() { await apiDelete(); const items = await getItems(); if (items.length) { return deleteUntilEmpty(); } } async function run() { await deleteUntilEmpty(); apiPost() .then(() => console.log("posting...")) .catch((e) => console.log(e)); }

En lugar de eliminar constantemente, también puede hacer una encuesta para ver si el servidor ha completado la eliminación original:

 async function pollUntilEmpty() { const items = await getItems(); if (items.length) { // this could be a good spot to introduce some kind of // sleep to not DDOS your server ;) return pollUntilEmpty(); } } async function deleteAndPollUntilEmpty() { await apiDelete(); await pollUntilEmpty(); } async function run() { await deleteAndPollUntilEmpty(); apiPost() .then(() => console.log("posting...")) .catch((e) => console.log(e)); }
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