我正在尝试编写一个流式传输到文件或http放置请求的函数。我希望能够写出类似的东西:
stream_data_to(dest, cb)
在成功保存数据或发生错误时调用cb(err)。
我假设这样做的方法是将dest作为可写流,并执行以下操作:
stream_data_to(dest, cb) {
my_source.pipe(dest);
dest.on('finish', cb);
dest.on('error', function(err) { cb(err); }
}
对于文件来说这似乎很好,但是对于http请求,我认为当数据传输到远程服务器时,但在服务器发送响应之前,会调用'finished'。我希望stream_data_to在远程服务器确认put成功之前不要回拨。
有没有办法做到这一点,同时保持stream_data_to不可知到它是什么样的目的地?这似乎在节点中应该很容易做到,所以我觉得我错过了一些明显的东西......