Cuál es la diferencia entre:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return "bbb";
})
.then(function(result) {
console.log(result);
});
y esto:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return Promise.resolve("bbb");
})
.then(function(result) {
console.log(result);
});
Pregunto ya que obtengo un comportamiento diferente Uso del servicio Angular y $ http con el encadenamiento .then (). Demasiado código, por lo tanto, primero el ejemplo anterior.
thencontrolador, de hecho, es un aspecto clave de la especificación de promesas que puede hacer eso.
thens anidados arbitrariamente : el término 'otros idiomas' para esto es que thenes a mapy a flatMap.
new Promise((res, rej) => { return fetch('//google.com').then(() => { return "haha"; }) }).then((result) => alert(result));este código simplemente se bloqueará (no se resolverá para siempre). Pero si cambio return "haha";a, return res("haha");entonces funcionará y alertará a "jaja". ¿El fetch (). Then () ya envolvió "jaja" en una promesa resuelta?
Promise.resolve()en el segundo ejemplo es innecesario.