正确的链接RSVP承诺的方式

时间:2014-04-05 13:17:45

标签: javascript promise rsvp.js

所以我有一个函数data.people()发送和http请求并接收数据,因此我使用promises并且此函数返回一个promise。之后我使用了下面的链接

data.people()
.then(function() {

    ....
}, function(err) {
    console.error(err);
}).then(function() {
        ...
}, function(err) {
    console.error(err);
}).then ...

所以我写这个是正确的,因为我找不到任何关于这个的纪录片,当我将eventListener附加到第三个promise中具有给定id的一个元素时,它会在执行第二个promise之前执行(其中这个元素被另一个具有相同id的元素更改,并且不会在第三个promise(我需要它)中工作。 Here是我在jsfiddle中的完整代码。

1 个答案:

答案 0 :(得分:2)

是的,你正在写作品,但远非最佳。

没有理由链接.then调用,除非你从其中一个调用返回一个promise,在这种情况下它会等到异步操作完成。

您的代码可以简化为:

data.people().then(function(people){
    //rest of code here
});

因为你的所有运动员都没有回复承诺。

承诺不承诺不会立即继续下一个.then

此外,如果您执行链式处理程序并希望在以后的.then调用中访问返回值,则必须从该.then处理程序返回数据。