Creé lo siguiente (usando supertest) y lo coloqué en una función (importaciones eliminadas, etc. por brevedad)
module.export = { addThing: async function(title, done) { const someGraphQL = `mutation {.....}` let the_id = "" request .post("/graphql") .send({ query: someGraphQL }) .set("Accept", "application/json") .expect(200) .end((err, res) => { if (err) return done(err); the_id = Prmise.resolve(res.body.data.id); console.log(res.body.data.id) }) console.log(the_id) return the_id } }Cuando llamo a esto, puedo ver el archivo console.log con "res.body.data.id", pero no el que está en la variable.
Pensé que esto podría haber sido un comportamiento de tipo asíncrono, pero como siempre veo el registro de la consola para res.body.data.id (pero no para la variable (sin importar dónde coloque la variable), estoy confundido?