寻求帮助。我是Angular + RxJS的初学者,如果这很容易,请不要怪我。
想法是提交具有许多输入字段的表单,其中之一是图像上载。 当用户单击“提交”按钮时,首先需要调用添加了文件的POST / attachments服务来获取其令牌。当此服务返回附件的令牌时,则需要在我发送所有表单数据的最终服务调用中使用它。
特殊情况是,如果用户提交表单,则第一个带有附件令牌的服务响应失败,而第二个失败,则当用户再次单击“提交”按钮一次时,不应再次调用/ attachments服务,而仅使用先前获得的附件令牌并调用表单的POST服务。
使用某些RxJS运算符或其他功能是否可能? 我知道我可以在我的应用程序中使用一些丑陋的逻辑来使它工作,但我也想使其变得更漂亮。
这是我提交功能的第一版代码。
public submitForm(finalData) {
const { attachment, ...data } = finalData;
return this.http
// at first get attachment's token
.post('/attachments', attachment)
.pipe(
switchMap((attachmentToken) => {
const formData = {
data,
attachment: attachmentToken
};
// submit form data
return this.http.post('/submitformdata', formData)
}),
);
}
答案 0 :(得分:1)
您应该存储附件令牌并基于该令牌进行请求:
console.log(String([1,2])); // '1,2' (of type string)
console.log(String([2])); // '2' (of type string)
console.log(Number('1,2')); // NaN (of type number)
console.log(Number('2')); // 2 (of type number)