繁体   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