我有一个包含3个项目的数组:
subscribe
我想为每个项目执行Ajax请求。那没问题 。但我还需要知道我在 from(this.arrActions).pipe(
mergeMap((i) => this.ajaxAlike(i)))
.subscribe(data => {
console.log(data)
});
回调中处理哪个项目。
这就是我的尝试:
from(this.arrActions).pipe(
mergeMap((i) =>(of({data:i.data, url: this.ajaxAlike(i.url)}))))
.subscribe(data => {
console.log(data)
});
返回:
https://groups.google.com/forum/#!topic/actionml-user/9gPlf5iWDWQ
但我不知道每个回调与哪个请求相关。
所以我想也许这样:
subscribe
但是现在,http没有执行:
此外,我认为我在这里做错了。
问题:
如何调用所有网址,并在http
同时获得item
结果+ MyModel.hasMany(models.MyModel2, {foreignKeyConstraint: true});
MyModel.hasMany(models.MyModelX, {foreignKeyConstraint: true});
本身?
答案 0 :(得分:2)
您可以在收到结果后映射每个结果:
from(this.arrActions)
.pipe(
mergeMap((i) => this.ajaxAlike(i)
.pipe(
map(result => ({ data: i.data, result })),
)
)
)
.subscribe(data => {
console.log(data)
}, err => {
console.log(' error which is ->', err);
});
这将打印以下输出:
{data: "5", result: "httpResponse"}
{data: "6", result: "httpResponse"}
{data: "7", result: "httpResponse"}
您更新了演示:https://stackblitz.com/edit/angular-http-client-y43j1w?file=app/app.component.ts