Skip to content

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_PATHstring檔案系統中的使用者目錄路徑 (本機路徑)

Worker.onMessage

Worker.onMessage(function listener)

  • 功能說明:監聽主線程/Worker線程向當前線程發送的消息的事件。
  • 參數: function listener, 主線程/Worker線程向當前線程發送的消息的事件的監聽函數。
  • 參數: Object res
内容類型說明
messageObject主線程/Worker線程向當前線程發送的消息

Worker.postMessage

Worker.postMessage(function listener)

  • 功能說明:向主線程/Worker線程發送的消息。

  • 參數: Object message, 需要發送的消息。

  • 示例代碼:

    • worker線程中
    js
    worker.postMessage({
      msg: "hello from worker",
    });
    • 主線程中
    js
    const worker = wx.createWorker("workers/request/index.js");
    
    worker.postMessage({
      msg: "hello from main",
    });

Worker.terminate

Worker.terminate()

  • 功能說明:結束當前Worker線程。 僅限在主線程worker對象上調用。