Angular 提交带有两个不同Api和条件的表单
我遇到了如何使用2个不同的Api提交的问题。 当第一个Api返回成功时,则转到第二个Api。 第一个Api成功,但第二个Api失败,因为数据未定义 这是我的密码Angular 提交带有两个不同Api和条件的表单,angular,typescript,Angular,Typescript,我遇到了如何使用2个不同的Api提交的问题。 当第一个Api返回成功时,则转到第二个Api。 第一个Api成功,但第二个Api失败,因为数据未定义 这是我的密码 public signupform(userData: SignupRequest): Observable <any> { return this.http.post('api/createorganisation').pipe(tap( // Log the result or error data =>
public signupform(userData: SignupRequest): Observable <any> {
return this.http.post('api/createorganisation').pipe(tap( // Log the result or error
data => {
if (data.status['message'] === 'Success.') {
return this.http.post('api/createuser');
}
}
));
}
公共注册表单(userData:SignupRequest):可观察{
返回此.http.post('api/createOrganization').pipe(点击(//记录结果或错误
数据=>{
如果(数据状态['message']='Success'){
返回此.http.post('api/createuser');
}
}
));
}
希望你们都能帮忙
提前感谢< P>管道不同的<代码> HTTPcli客< /代码>请求,就像你正在做的那样,你应该考虑使用管道运算符<代码>开关图。此外,我不确定是否需要您的
if
语句,因为您已经在Observable
的成功回调中
您可以使用类似以下内容:
public signupform(userData: SignupRequest): Observable<any> {
return this.http.post('api/createorganisation')
.pipe(
switchMap(() => this.http.post('api/createuser'))
);
}
公共注册表单(userData:SignupRequest):可观察{
返回此.http.post('api/createOrganization')
.烟斗(
switchMap(()=>this.http.post('api/createuser'))
);
}
在订阅此查询时,您将依次触发这两个查询,并获得第二个查询返回的结果
希望有帮助 如果有两个API调用,请尝试使用switchMap()
运算符:
import { map, switchMap } from 'rxjs/operators';
public signupform(userData: SignupRequest): Observable<any>{
return this.http.post('api/createorganisation')
.pipe(
switchMap(organis => {
return this.http.post('api/createuser');
})
);
}
从'rxjs/operators'导入{map,switchMap};
公共注册表单(userData:SignupRequest):可观察{
返回此.http.post('api/createOrganization')
.管道(
开关图(组织=>{
返回此.http.post('api/createuser');
})
);
}
更新:
要查看API是否返回数据,您可以记录它:
public signupform(userData: SignupRequest): Observable<any>{
return this.http.post('api/createorganisation')
.pipe(
switchMap(organis => {
console.log('organis: ', organis.json()); // to see data of api/createorganisation
return this.http.post('api/createuser');
})
);
}
公共注册表单(userData:SignupRequest):可观察{
返回此.http.post('api/createOrganization')
.管道(
开关图(组织=>{
console.log('organi:',organi.json());//查看api/CreateOrganization的数据
返回此.http.post('api/createuser');
})
);
}
如何检查api/CreateOrganization
中的数据是否已经存在