protobuf.js: есть ли синхронный способ загрузки статического кода

Я пытаюсь синхронно загрузить статический код protobuf.js (сгенерированный с помощью pbjs).

Согласно документации, документированный метод является асинхронным.

Асинхронная загрузка выполняется так:

protobuf.load("bundle.json", function(err, root) {
    ...
});

Поскольку мой следующий код должен выполняться только после завершения загрузки, я считаю, что синхронная загрузка будет лучше.

Есть ли способ загрузить его синхронно или есть какой-нибудь твик, чтобы сделать это?

2 ответа

Решение

Protobuf.js имеет метод синхронной загрузки

Вы можете полностью достичь того, что вы хотите с асинхронной загрузкой. Просто добавьте свой дополнительный код в обратный вызов или не добавляйте обратный вызов и добавьте свой дополнительный код в метод.then возвращаемого Promise.

protobuf.js может загружаться синхронно с loadSync. Следует пример кода

      const protoPath = __dirname + "/proto"

const files = (fs.readdirSync(protoPath))
  .filter(file => file.split('.').pop() === 'proto')

const root: protobuf.Root = protobuf.loadSync(files)
Другие вопросы по тегам