[英]Proper way of chaining RSVP promises
所以我有一個函數data.people()發送和http請求並接收數據,因此我正在使用promises,並且此函數返回一個promise。 之后,我使用以下鏈接
data.people()
.then(function() {
....
}, function(err) {
console.error(err);
}).then(function() {
...
}, function(err) {
console.error(err);
}).then ...
所以我寫的是正確的,是因為我找不到任何紀錄片,並且當我在第三個承諾中將eventListener附加到具有給定id的一個元素上時,它會在第二個承諾執行之前執行(在此元素更改為另一個具有相同ID的文件),並且在第三個承諾(我需要的地方)中不起作用。 這是我在jsfiddle中的完整代碼。
是的,您正在撰寫作品,但遠非最佳。
沒有理由將.then
鏈鏈接起來.then
除非您從其中一個返回了諾言,在這種情況下,它將等待異步操作完成。
您的代碼可以簡化為:
data.people().then(function(people){
//rest of code here
});
既然您那時都沒有回報承諾。
不返回一個承諾承諾將繼續到下一個.then
幾乎瞬間。
另外,如果您執行鏈處理程序,並且想在以后的.then
調用中訪問返回值,則必須從該.then
處理程序中返回數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.