簡體   English   中英

正確鏈接RSVP許諾的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM