RxJS-POST多部分文件
我正在做一篇关于多部分文件的文章。当文件较小时(2个50kb的文件)。一切正常。 如果文件较大(10个500kb的文件),则无法正常工作。RxJS-POST多部分文件,post,rxjs,multipart,Post,Rxjs,Multipart,我正在做一篇关于多部分文件的文章。当文件较小时(2个50kb的文件)。一切正常。 如果文件较大(10个500kb的文件),则无法正常工作。 我认为原因是帖子需要一段时间才能返回结果 首先,我通过调用POST的merge来合并两个ob。 其次,我通过ConmbineLastUploadDocumentsSaved和behaviorSubject操作uploadDocumentGetDetailsAction获得uploadDocumentDetails$ 由于调用fast uploadDocume
我认为原因是帖子需要一段时间才能返回结果 首先,我通过调用POST的merge来合并两个ob。 其次,我通过ConmbineLastUploadDocumentsSaved和behaviorSubject操作uploadDocumentGetDetailsAction获得uploadDocumentDetails$ 由于调用fast uploadDocumentGetDetailsAction,POST尚未完成 在POST首先完成后,我应该如何实现obs以获得GET
uploadDocumentsSaved$ = merge(
this.uploadedDocuments$,
this.saveAction$
.pipe(
concatMap(uploadDocument => {
return this.saveUploadDocuments(uploadDocument);
})
))
.pipe(
scan((uploadDocuments: UploadDocument[], uploadDocument: UploadDocument) =>
this.syncUploadDocuments(uploadDocuments, uploadDocument)
),
shareReplay(1)
);
uploadDocumentDetails$ = combineLatest([
this.uploadDocumentsSaved$,
this.uploadDocumentGetDetailsAction$
]).pipe(
map(([uploadedDocuments, selectedUploadedDocument]) =>
uploadedDocuments.find(uploadedDocument => uploadedDocument.type = selectedUploadedDocument)
),
switchMap(uploadDocument => this.uploadDocumentDetailsUrl(uploadDocument.token, uploadDocument.type)),
shareReplay(1),
);
我不确定我是否完全理解所显示的代码的作用,但我希望这样做:
uploadDocumentsSaved$ = merge(
this.uploadedDocuments$,
this.saveAction$
.pipe(
concatMap(uploadDocument => this.saveUploadDocuments(uploadDocument)),
concatMap(uploadDocument => this.uploadDocumentDetailsUrl(uploadDocument.token, uploadDocument.type))
))
.pipe(
scan((uploadDocuments: UploadDocument[], uploadDocument: UploadDocument) =>
this.syncUploadDocuments(uploadDocuments, uploadDocument)
),
shareReplay(1)
);
每次saveAction发生时,它都会首先调用saveUploadDocuments
(我假设这是post)然后调用uploadDocumentDetailsUrl