好的,我正在尝试将图像文件编码为base64,然后对API进行POST,然后返回响应。
我遇到的麻烦是,base64编码会异步运行,因此在编码完成之前不会发出api帖子。
任何帮助表示赞赏。
makePost()
{
return Observable.create((observer) => {
this.myPost.base64images = new Array(10);
for (var i = 0; i < this.myPost.images.length; i++)
{
if (this.myPost.images[i])
{
this.base64.encodeFile(this.myPost.images[i].path).then((base64File: string) => {
this.myPost.base64images[i] = base64File;
}, (err) => {
this.myPost.base64images[i] = null;
});
}
}
observer.next(1);
observer.complete();
}).pipe(mergeMap((result) => {
var payload = {
PostTitle: "Hello",
Images: this.myPost.base64images
}
return this.apiService.makePost(payload).pipe(map(
response => {
return response;
},
err => {
return err;
}
));
}));
}