【发布时间】:2019-09-02 19:29:37
【问题描述】:
我正在向服务器发出请求以获取项目列表。
为简单起见,假设第一个 API 请求返回一个口袋妖怪列表。
getPokemon()
"objects" :[
{ "name": "Bulbasaur", "id": "1234"},
{ "name": "Squirtle", "id": "4321" },
...
]
我需要做的是,对于每个返回的口袋妖怪,我需要使用 id 单独请求有关口袋妖怪的更多详细信息。
getPokemonDetails(id: "1234")
"data" : {
"age": "12",
"height": "2 feet",
... }
图片我正在尝试列出所有口袋妖怪的高度。在发出父 getPokemon 请求后,我需要每个单独请求的详细信息。
每个请求都返回一个承诺。
我尝试过但不起作用的方法:
this.provider.getPokemon().then(results => {
foreach pokemon in results {
this.provider.getPokemonDetails(pokemon.id).then(detail => {
myData.push(detail.height)
})
}
})
看来这个时间安排有问题。
如何在 Ionic 3 中做到这一点?
我似乎突然想到了一些东西:forkJoin, map, mergeMap...我在寻找什么?
【问题讨论】:
-
请澄清:您的 API 请求实际上是设置为承诺还是可观察的?您的示例似乎暗示了承诺,但您询问了特定于可观察对象的方法。
-
@miqh 它们被设置为承诺。很抱歉!
标签: angular typescript ionic-framework ionic3