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.
then
controlador, de hecho, es un aspecto clave de la especificación de promesas que puede hacer eso.
then
s anidados arbitrariamente : el término 'otros idiomas' para esto es que then
es a map
y 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.