我使用importScripts导入了sodium.js,但是当web worker运行时,它会给出错误TypeError: sodium.crypto_pwhash不是一个函数。但是,worker中的Console.log sodium.js会打印钠对象。我遗漏了什么?
发布于 2020-12-08 16:48:43
正如在this issue中所解释的,您需要加载browser-sumo version以使其包含crypto_pwhash。
const worker_script = `
self.sodium = {
onload: function (sodium) {
postMessage( sodium.crypto_pwhash.toString() );
}
};
importScripts('https://cdn.jsdelivr.net/gh/jedisct1/libsodium.js@master/dist/browsers-sumo/sodium.js');
`;
const worker = new Worker( URL.createObjectURL( new Blob( [ worker_script ], { type: "text/javascript" } ) ) );
worker.onmessage = ({data}) => console.log( data );
https://stackoverflow.com/questions/65194012
复制相似问题