Mi pregunta es en referencia al siguiente código. Cuando llamo a este archivo en mi terminal "node app.js"... Espero ver [B] primero antes de [A] ya que la función addAddress(res) es Async y tiene la palabra clave en espera , por lo que debería ser completado primero antes de continuar/se llama antes de console.log("[A]") . Además, entendí que el último elemento en una pila de llamadas también es el primer elemento que se llamará/ejecutará (LASTinFirtsOut). Entonces, dado que la función addAddress(res) fue llamada por última vez, debe ejecutarse antes de continuar.
Gracias a todos una vez más, espero seguir mejorando mi comprensión.
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/relationshipDemo', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => { console.log("MONGO CONNECTION OPEN!!!") }) .catch(err => { console.log("OH NO MONGO CONNECTION ERROR!!!!") console.log(err) }) const userSchema = new mongoose.Schema({ first: String, last: String, addresses: [ { _id: { id: false }, street: String, city: String, state: String, country: String } ] }) const User = mongoose.model('User', userSchema); const makeUser = async () => { const u = new User({ first: 'Harry', last: 'Potter', }) u.addresses.push({ street: '123 Sesame St.', city: "New York", state: 'NY', country: 'USA' }) const res = await u.save() addAddress(res) console.log(res); console.log("[A]") } const addAddress = async (id) => { const userNow = await User.findById(id); userNow.addresses.push({ street: '123 Florida', city: "Miami", state: 'FL', country: 'USA' }) const userSaved = await userNow.save(); console.log(userSaved) console.log('[B]') } makeUser()