Tengo el siguiente código como parte de una práctica de codificación que estoy haciendo:
var promise = new Promise(function(resolve, reject) { setTimeout(function() { resolve('hello world'); }, 2000); }); var promiseTwo = new Promise((resolve, reject) => { setTimeout(() => { resolve('hello again!'); }, 2000); }); promise.then(promiseTwo).then((data) => { console.log(data) }) Cuando se registran los datos, se lee hello world y no hello again! . ¿Porqué es eso? Pensé que la línea promise.then(promiseTwo).then((data) => { console.log(data) }) resolvería la primera promesa, luego pasaría la segunda promesa como una devolución de llamada que resolvería hello again! . ¿Por qué la resolución en promiseTwo nunca obtiene retorno del método .then ?
Debido a que no está devolviendo promiseTwo en then , simplemente lo está llamando, intente:
var promise = new Promise(function(resolve, reject) { setTimeout(function() { resolve('hello world'); }, 2000); }); var promiseTwo = new Promise((resolve, reject) => { setTimeout(() => { resolve('hello again!'); }, 2000); }); promise.then(() => promiseTwo).then((data) => { console.log(data) })