我想封装一个Webworker,以便我可以轻松地在其他项目中重复使用它。
这就是我所做的。但是我收到错误消息:
Uncaught SyntaxError: Unexpected token 'export'
但是当我在this.worker = new Worker(workerPath);
中注释代码行Heartbeat.js
时,此代码不会造成任何麻烦。
这是怎么了?
我的index.html文件:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<script type="module" src="js/script.js"></script>
</body>
</html>
js / script.js:
import * as Heartbeat from "./Heartbeat.js";
var hb = new Heartbeat.Heartbeat("MyHeartbeat");
和js / Heartbeat.js
export class Heartbeat {
constructor(name,workerPath="js/Heartbeat.js") {
this.name = name;
this.worker = new Worker(workerPath);
}
sleep(ms) { return new Promise(resolve => setTimeout(resolve,ms)); }
async start_heartbeat() {
counter = 0;
while(true) {
counter++;
console.log("counter = " + counter)
await sleep(1000);
}
}