Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

85
Views
El código asincrónico ignora las llamadas y ejecuta mis funciones al mismo tiempo o incluso antes de que se haya ejecutado otra función llamada anterior. en node.js

Estoy creando un bot de holgura que accede a la API de Spotify para hacer cosas como reproducir canciones, poner canciones en cola, omitir canciones e informar la pista que se está reproduciendo actualmente.

El problema es cuando se intenta omitir una canción y luego acceder a la nueva canción actual y, por último, informarla al chat de Slack. las llamadas a funciones son las siguientes:

  1. Reaccionando -> saltarCanción()
  2. saltar la canción (acceder a la canción actual ())
  3. accedercancionActual( postNuevaCancionActual() )

A pesar de que las llamadas a funciones están en ese orden, la aplicación está ejecutando las funciones en este orden:

  1. accedercancionActual( postNuevaCancionActual() )
  2. saltar la canción (acceder a la canción actual ())

como probablemente puedas ver, esto termina publicando la canción que se omitió y luego omitiendo la canción. ¿Alguien tiene alguna idea de cómo puedo hacer esto sincrónico?

Gracias.

 reaction listener: app.event("reaction_added", async ({ event }) => { console.log(event); const reaction = event.reaction; if (reaction === "hankey") { skipSong(); } }); Access current song: const accessCurrentSong = (token) => { const options = { url: "https://api.spotify.com/v1/me/player", headers: { Authorization: `Bearer ${token}` }, json: true, }; try{ request.get(options, function (error, response, body) { if (error) { console.error(error); } else { const { name, artists, duration_ms, album } = body.item; SONG = name; ARTISTS = getArtists(artists); DURATION = convertDuration(duration_ms); IMAGE_URL = album.images[0].url; RELEASE_DATE = album.release_date; DEVICE_ID = body.device.id; console.log( `Song Title: ${SONG} \nArtist: ${ARTISTS} \n${DURATION} \n ${IMAGE_URL} \n ${DEVICE_ID}` ); postCurrentSong(SONG, ARTISTS, DURATION, IMAGE_URL, RELEASE_DATE) } }); } catch { refreshToken(); accessCurrentSong(ACCESS_TOKEN) } } skip current song: const skipSong = () => { const skipOptions = { url: `https://api.spotify.com/v1/me/player/next? device_id=${DEVICE_ID}`, headers: { Authorization: `Bearer ${ACCESS_TOKEN}` }, json: true, }; request.post(skipOptions, function (err, response) { if (err) console.log("error occurred"); else console.log(`song skipped\n ${response}`); }); accessCurrentSong(ACCESS_TOKEN) };

Tengo algunos console.log para probar en cada función y aparentemente se registran al mismo tiempo. aunque el acceso a la canción actual no se llama hasta el final de la función de salto, la prueba de acceso a la canción actual se registra después del primer registro de prueba de salto y antes de la última salida de salto.

about 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!