我有一组文件正在上传到s3存储桶,我希望在所有上传完成后使用RxJS执行一些代码。
我的TypeScript方法目前如下所示:
protected uploadToS3()
{
this.uploader.queue.map( file => {
this.appsService.uploadFileToS3( file,
(filename) => console.log(`File: ${filename}`),
(err) => console.log(`Error: ${err}`) ) ;
});
}
任何人都可以在RxJS中推荐一个方法,一旦调用了所有next()
方法(接受上面filename
参数的方法),它就会执行代码吗?我知道我混合的编码风格实际上不应该混合在一起,但我有一些我必须使用的遗留代码。
谢谢!
答案 0 :(得分:0)
在gitter的人们的帮助下,我想出了以下内容:
var uploadFile = Observable.bindNodeCallback(this.appsService.uploadFileToS3);
var result = Observable.from(this.uploader.queue)
.flatMap(e => uploadFile(e, this.authenticationService.apiKey));
result.subscribe(
x => console.log(`Success: ${x}`),
e => console.log(`Error: ${e}`),
() => console.log(`Completed`)
);
快乐的兔子。
中号