можно ли сохранить тип поиска protobuff для будущего использования? - PullRequest
1 голос
/ 28 сентября 2019

Я использую 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);
            });
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...