protobuf.js: 有没有同步加载静态代码的方式

protobuf.js: Is there a synchronous way of loading static code

我正在尝试同步加载 protobuf.js 静态代码(使用 pbjs 生成)。

根据 documentation,记录的方法是异步的。

异步加载是这样完成的:

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

由于我的后续代码只能在加载完成后执行,我相信同步加载会更好。

有没有什么方法可以同步加载它,或者有什么调整可以做到这一点?

Protobuf.js 有一个 synchronous loading method

你完全可以通过异步加载来实现你想要的。 只需将您的进一步代码放入回调中,或者不添加回调并将您的进一步代码添加到返回的 Promise 的 .then 方法中。

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)