Apa perbedaan antara:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return "bbb";
})
.then(function(result) {
console.log(result);
});
dan ini:
new Promise(function(res, rej) {
res("aaa");
})
.then(function(result) {
return Promise.resolve("bbb");
})
.then(function(result) {
console.log(result);
});
Saya bertanya karena saya mendapatkan perilaku yang berbeda Menggunakan layanan Angular dan $ http dengan chaining .then (). Sedikit kode terlalu banyak maka pertama contoh di atas.
then
pawang, pada kenyataannya, itu adalah aspek kunci dari spesifikasi janji yang dapat Anda lakukan.
then
- istilah 'bahasa lain' untuk ini adalah then
a map
dan a flatMap
.
new Promise((res, rej) => { return fetch('//google.com').then(() => { return "haha"; }) }).then((result) => alert(result));
Kode ini hanya akan hang (tidak diselesaikan selamanya). Tapi jika saya mengubah return "haha";
ke return res("haha");
kemudian itu akan bekerja dan waspada "haha". Bukankah fetch (). Then () sudah membungkus "haha" menjadi janji terselesaikan?
Promise.resolve()
contoh kedua tidak perlu.