将字节数组转换为可读流
transform a byte array to a readablestream
嗨,我被这个问题困住了,
为了将数据播种到我的 miragejs 实例,我重建了一些 protobuf 对象,
const unknownObject = new core.UnknownObject()
const unknownEntity = new message.UnknownObjectEntity()
const unknownEntityRepo = new message.UnknownObjectEntityRepository()
const unknownObjectNotification = new message.UnknownObjectNotification()
const date = new google_protobuf_timestamp_pb.Timestamp()
unknownObject.setImage(Base64())
unknownObject.setTimestamp(date)
unknownObject.setWaypoint(new core.Waypoint())
console.log('unknownObject:', unknownObject.getTimestamp())
unknownEntity.setId('1')
unknownEntity.setUnknownobject(unknownObject)
console.log('unknownEntity:', unknownEntity)
const endBuffer = unknownEntityRepo.addEntity(unknownEntity).serializeBinary()
最终结果(endBuffer)是一个字节数组。我想将此字节数组重建为可读流以便播种数据。这是最终需要的结果。
ReadableStream {locked: false}
我只能资助用于读取流的资源,而不能将字节数组转换为 ReadableStream。
有没有人有这方面的经验。谢谢
您需要实现 ReadableStream 并将您的内容添加到控制器。 Mozilla's MDN Web Docs provide some guidance in their simple random string example.
这是一个简化的例子:
function buildStream(data)
{
//depending on what data is and how it will be used, you may need to convert it
//data = Uint8Array.from(data);
return new ReadableStream({
start(controller) {
// Add the data to the stream
controller.enqueue(data);
},
pull(controller) {
// nothing left to pull, so close
controller.close();
},
cancel() {
//nothing to done
}
});
}
嗨,我被这个问题困住了,
为了将数据播种到我的 miragejs 实例,我重建了一些 protobuf 对象,
const unknownObject = new core.UnknownObject()
const unknownEntity = new message.UnknownObjectEntity()
const unknownEntityRepo = new message.UnknownObjectEntityRepository()
const unknownObjectNotification = new message.UnknownObjectNotification()
const date = new google_protobuf_timestamp_pb.Timestamp()
unknownObject.setImage(Base64())
unknownObject.setTimestamp(date)
unknownObject.setWaypoint(new core.Waypoint())
console.log('unknownObject:', unknownObject.getTimestamp())
unknownEntity.setId('1')
unknownEntity.setUnknownobject(unknownObject)
console.log('unknownEntity:', unknownEntity)
const endBuffer = unknownEntityRepo.addEntity(unknownEntity).serializeBinary()
最终结果(endBuffer)是一个字节数组。我想将此字节数组重建为可读流以便播种数据。这是最终需要的结果。
ReadableStream {locked: false}
我只能资助用于读取流的资源,而不能将字节数组转换为 ReadableStream。
有没有人有这方面的经验。谢谢
您需要实现 ReadableStream 并将您的内容添加到控制器。 Mozilla's MDN Web Docs provide some guidance in their simple random string example.
这是一个简化的例子:
function buildStream(data)
{
//depending on what data is and how it will be used, you may need to convert it
//data = Uint8Array.from(data);
return new ReadableStream({
start(controller) {
// Add the data to the stream
controller.enqueue(data);
},
pull(controller) {
// nothing left to pull, so close
controller.close();
},
cancel() {
//nothing to done
}
});
}