所以我有一个函数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中的完整代码。
答案 0 :(得分:2)
是的,你正在写作品,但远非最佳。
没有理由链接.then
调用,除非你从其中一个调用返回一个promise,在这种情况下它会等到异步操作完成。
您的代码可以简化为:
data.people().then(function(people){
//rest of code here
});
因为你的所有运动员都没有回复承诺。
承诺不承诺不会立即继续下一个.then
。
此外,如果您执行链式处理程序并希望在以后的.then
调用中访问返回值,则必须从该.then
处理程序返回数据。