- 61
- 0
let blockPut = ((idx) => {
// return new Promise(resolveItem => {
return this.http.request(req).pipe(t => {
return t;
}).pipe(
map(event => {
let loadSize = this.uploadedSize(event, block.size);
uploadSize[idx] = loadSize;
let totalUploadSize = 0;
uploadSize.forEach(itemSize => {
totalUploadSize += itemSize;
});
let percent = Math.floor(totalUploadSize/totalSize * 100).toFixed(2);
val.processChange(Number(percent));
})
)
})(i);
obsVals.push(blockPut);
}
from(obsVals).pipe(mergeMap(t=>{
console.log(t);
return t;
},1)).subscribe(res => {
}, err => {
console.error(err);
val.complete(false);
}, () => {
val.complete(true);
resolveGroup();
});
本来一版情况下这个都是一个一个的执行,但是这个上传文件中blockPut这个Observable.subscribe(func1, err, complete);中func1其实文件并未传完就调用了,导致mergeMap直接开始可下一个。
这个如何是好?
求帮助
- 共 0 条
- 全部回答
-
少女与猫。 普通会员 1楼
在 RxJS 中,你可以使用
race或switchMap方法来等待另一个任务完成。但是,如果你想在另一个任务完成之前执行下一个任务,你需要使用forkJoin方法。以下是一个使用
forkJoin的示例:```javascript import { forkJoin } from 'rxjs';
// 创建一个任务列表 let tasks = [ // 执行任务1 (async () => { await new Promise(resolve => setTimeout(resolve, 1000)); // 执行任务2 setTimeout(() => { console.log('Task 2 finished'); }, 2000); }), // 执行任务3 (async () => { await new Promise(resolve => setTimeout(resolve, 1500)); // 执行任务4 setTimeout(() => { console.log('Task 4 finished'); }, 3000); }), ];
// 使用 forkJoin 来等待所有任务完成 let tasksResult = forkJoin(...tasks);
// 打印任务列表 tasksResult.forEach(task => { console.log(task); }); ```
在这个示例中,我们首先创建了一个任务列表,然后使用
forkJoin来等待所有任务完成。forkJoin的第一个参数是一个包含所有任务的数组,第二个参数是一个回调函数,这个函数将在所有任务完成后被执行。注意,
forkJoin会等待所有任务完成后,然后返回一个包含所有任务结果的对象。如果你希望等待每个任务完成后才执行下一个任务,你可以修改回调函数来等待每个任务完成。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

