0
有一个busboy library。对于某些承诺库,我可以用下面的代码收集一个对象的整个表单数据:RxJS和Busboy
var p = new Promise((resolve) => {
let res = {}
busboy.on('file', (fieldname, file, filename, encoding, mimetype)=> {
let name = uuid.v1()
let extension = path.extname(filename)
let saveTo = path.resolve(mediaPath, `${name}${extension}`)
file.pipe(fs.createWriteStream(saveTo))
res = _.extend(res, {
[fieldname]: { filename }
})
})
busboy.on('field', (key, value, keyTruncated, valueTruncated) => {
res = _.extend({[key]: value})
})
busboy.on('finish',() => resolve(res))
})
p.then((data) => ...
它的工作原理,但它看起来有点意大利面条一样小。有没有办法用RxJS来改进这个样本?
试试这个http://xgrommx.github.io/rx-book/content/observable/observable_methods/fromevent.html – xgrommx
你建议设立3不同的序列(对于每种类型的事件),合并它们并减少一个对象? – kharandziuk