gpt4 book ai didi

javascript - 如何从这两个可观察对象中只创建一个订阅?

转载 作者:行者123 更新时间:2023-11-30 20:24:24 25 4
gpt4 key购买 nike

我有一个从可读流中读取数据然后将结果保存在 Parse 中的函数:

const { from } = require('rxjs');
const Observable = require('rxjs').Observable;
const jsArr = [];

fromStream(fs.createReadStream(req.file.path, 'utf-8').pipe(csv()))
.map((data) => data.USERNAME)
.subscribe(
(data) => jsArr.push(data),
(error) => console.log(error),
() => {
const CSVData = Parse.Object.extend('CSVData');
const csv = new CSVData();
csv.set('CSV',jsArr);

from (csv.save())
.subscribe(
() => res.json(serialize({type:'success'})),
(error) => console.log(error)
);

}
);

它工作得很好,但我想知道是否有一种方法可以以更简洁的方式做到这一点,只使用一个订阅者。

这可能吗?

最佳答案

我猜你可以这样做,但出于明显的原因我还没有测试过。

fromStream(fs.createReadStream(req.file.path, 'utf-8').pipe(csv()))
.map((data) => data.USERNAME)
.toArray(),
.concatMap(jsArr => {
const CSVData = Parse.Object.extend('CSVData');
const csv = new CSVData();
csv.set('CSV',jsArr);

return from(csv.save());
})
.subscribe(
() => res.json(serialize({type:'success'})),
(error) => console.log(error)
)

关于javascript - 如何从这两个可观察对象中只创建一个订阅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51080941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com