[英]Access scope with multithread.js
我嘗試生成RSA密鑰,由於這需要一些時間,因此我想使用multithread.js進行密鑰生成。
我的代碼:
<script src="../js/multithread.js"></script>
<script src="../js/crypto/cryptico.js"></script>
<script>
var keyPair;
var MT = new Multithread(2);
MT.process(
function () {
var bits = 4096;
return cryptico.generateRSAKey("passphrase", bits);
}, function (key) {
keyPair = key;
publicKey = cryptico.publicKeyString(keyPair);
}
)();
</script>
我得到一個
ReferenceError: cryptico is not defined
錯誤。
我知道multithread.js與應用程序的作用域不同。 那么,如何訪問加密庫或將范圍傳遞給multithread.js?
我自己找到了解決方案。
只需在函數中包含帶有importScripts
的必要文件importScripts
。 Webworker已定義此方法。
像這樣:
MT.process(
function () {
importScripts('http://localhost:63342/..../js/crypto/cryptico.js');
var bits = 4096;
return cryptico.generateRSAKey("passphrase", bits);
}, function (key) {
keyPair = key;
publicKey = cryptico.publicKeyString(keyPair);
}
)();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.