Worker
wx.CreateWorker
wx.createWorker(string scriptPath)
- 功能說明:建立一個 Worker 執行緒。
- 參數: string scriptPath,Worker 入口檔案的絕對路徑。
- 返回值: Worker Worker 對象。
- 注意事項:
- 介面使用前需要在 game.json 中配置 workers 字段,表示 Worker 程式碼根目錄;
- scriptPath 為入口檔案的絕對路徑,且不以 / 開頭;
- 目前限制最多只能建立一個 Worker,在建立下一個 Worker 前請先調用Worker.terminate。
- 多執行緒 Worker 指南(小遊戲)
js
// Create a normal worker
const worker = wx.createWorker("workers/index.js"); // Specify the worker's entry file absolute path
worker.onMessage(function (res) {
console.log(res);
});
worker.postMessage({
msg: "hello worker",
});
worker.terminate();Worker
Worker 實例,主執行緒中可透過wx.createWorker介面獲取,Worker 執行緒中可透過全域變數 Worker 取得。
内容
- Object env, Worker 內的環境變數。
| 内容 | 類型 | 說明 |
|---|---|---|
| USER_DATA_PATH | string | 檔案系統中的使用者目錄路徑 (本機路徑) |
Worker.onMessage
Worker.onMessage(function listener)
- 功能說明:監聽主線程/Worker線程向當前線程發送的消息的事件。
- 參數: function listener, 主線程/Worker線程向當前線程發送的消息的事件的監聽函數。
- 參數: Object res
| 内容 | 類型 | 說明 |
|---|---|---|
| message | Object | 主線程/Worker線程向當前線程發送的消息 |
Worker.postMessage
Worker.postMessage(function listener)
功能說明:向主線程/Worker線程發送的消息。
參數: Object message, 需要發送的消息。
示例代碼:
- worker線程中
jsworker.postMessage({ msg: "hello from worker", });- 主線程中
jsconst worker = wx.createWorker("workers/request/index.js"); worker.postMessage({ msg: "hello from main", });
Worker.terminate
Worker.terminate()
- 功能說明:結束當前Worker線程。 僅限在主線程worker對象上調用。