Яка різниця між:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return "bbb";
})
.then(function(result) {
console.log(result);
});
і це:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return Promise.resolve("bbb");
})
.then(function(result) {
console.log(result);
});
Я запитую, як я отримую різну поведінку, використовуючи послугу Angular та $ http з ланцюжком .then (). Трохи забагато коду, тому спочатку наведений вище приклад.
thenв тому, що повернути обіцянку від обробника, насправді, це ключовий аспект специфікації обіцянок, що ви можете це зробити.
thens - термін "інші мови" для цього thenє і a, mapі a flatMap.
new Promise((res, rej) => { return fetch('//google.com').then(() => { return "haha"; }) }).then((result) => alert(result));цей код просто зависне (не вирішений назавжди). Але якщо я перейду return "haha";до return res("haha");цього, він спрацює і попередить "ха-ха". Чи не витяг (). Тоді () вже завершив "ха-ха" в рішучу обіцянку?
Promise.resolve()другому прикладі непотрібно.