我想创建observable并返回其值。我有一个功能,它将一些文件逐个上传到服务器http post方法usig Observable.forkJoin
这是功能
uploadDocument(data): Observable<any> {
let arr = [];
for (var it in data) {
let input = new FormData();
input.append("file", data[it].value);
let files;
if (data[it].enabled && data[it].value && data[it].value instanceof File) {
arr.push(this.http.post(environment.apiUrl + 'Upload/File', input))
}
}
console.log(arr)
if(arr.length==0){
this.spinner.hide()
}
return Observable.forkJoin(arr);
}
我想做什么。如果array为空,我想返回带有空数组或obj的observable。 这是我的订阅功能
this.commonService.uploadDocument(this.DocsForm.controls)
.subscribe(
data=>{console.log(data)},
error=>{console.log(error)}
)
这里的数据是返回文件路径obj
的数组答案 0 :(得分:0)
forkjoin获取空数组并且没有调用subscribe所以我为空数组创建一个case并返回这样的空observable
if(arr.length==0){
this.spinner.hide()
return Observable.of(null);
}