你没有展示你如何迭代电影数组的实际代码,所以我们只能提供一个概念性的答案(下次请展示你的实际迭代代码)。但是,从概念上讲,您只需使用一个函数分别为每个数组元素传递索引或对象,然后您就可以在.then()
处理程序中访问该索引或对象。在这种情况下,如果您使用.forEach()
迭代您的数组,您正在迭代的对象数组中的对象和该对象的索引都将在一个函数中传递给您,该函数对于每个单独的请求都是唯一可用的。
例如,这是一个可行的概念:
var movies = [....]; // array of movie objects
movies.forEach(function(movie, index) {
// construct url for this movie
fetch(movieURL).then(function(data) {
// use the data to set the rating on movie
movie.rating = ...
});
});
如果您想使用 Promise 了解所有请求何时完成,您可以使用Promise.all()
:
var movies = [....]; // array of movie objects
Promise.all(movies.map(function(movie, index) {
// construct url for this movie
return fetch(movieURL).then(function(data) {
// use the data to set the rating on movie
movie.rating = ...
});
})).then(function() {
// all ratings updated now
});