Qual é a diferença entre:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return "bbb";
})
.then(function(result) {
console.log(result);
});
e isto:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return Promise.resolve("bbb");
})
.then(function(result) {
console.log(result);
});
Estou perguntando como estou obtendo um comportamento diferente usando o serviço Angular e $ http com encadeamento .then (). Um pouco de código, portanto, primeiro o exemplo acima.
then
manipulador; na verdade, é um aspecto essencial das especificações de promessas que você pode fazer.
then
s arbitrariamente aninhados - o termo 'outras línguas' para isso é que then
é a map
e a flatMap
.
new Promise((res, rej) => { return fetch('//google.com').then(() => { return "haha"; }) }).then((result) => alert(result));
esse código será interrompido (não será resolvido para sempre). Mas se eu mudar return "haha";
para return res("haha");
ele funcionará e alertará "haha". A busca (). Then () já envolveu "haha" em uma promessa resolvida?
Promise.resolve()
no segundo exemplo é desnecessário.