Я использую JS-библиотеку protobufjs и получаю данные, закодированные с помощью protobuff, в потоках.для декодирования мне нужно часто вызывать файлы ".proto", что приводит к перегрузке сети и задержке декодирования
Я попытался сохранить lookupType, чтобы использовать его в будущем декодировании без повторной загрузки файла ".proto"но не смог этого достичь.
let proto = new ProtoBuf.Root();
proto.load("my.proto", {keepCase: true}).then(pb => {
let message = pb.lookupType(decoderInfo.type);
let decoded = message.decode("buffer data");
});
если я сохраню это
let message = pb.lookupType (decoderInfo.type);
iможет использовать его для будущего декодирования без повторной загрузки файла ".proto"
Я хочу загрузить файл прото только один раз и сохранить его тип поиска для будущего использования.возможно ли это?
ПРИМЕЧАНИЕ: Я решил это путем кеширования обещания.
Пример:
function load(){
return new Promise((resolve, reject) =>{
if(self.myPromise){
resolve(self.myPromise);
}
else{
protoBuilder.load(".proto", {keepCase: true}).then(pb => {
self.myPromise = Promise.resolve(pb);
resolve(pb);
});
}
});
}