• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

TypeScript worker_threads.Worker类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了TypeScript中worker_threads.Worker的典型用法代码示例。如果您正苦于以下问题:TypeScript Worker类的具体用法?TypeScript Worker怎么用?TypeScript Worker使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Worker类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。

示例1: Promise

 return new Promise((resolve, reject) => {
     const worker = new workerThreads.Worker(__filename, {
         workerData: script
     });
     worker.on('message', resolve);
     worker.on('error', reject);
     worker.on('exit', (code) => {
         if (code !== 0)
             reject(new Error(`Worker stopped with exit code ${code}`));
     });
 });
开发者ID:ChaosinaCan,项目名称:DefinitelyTyped,代码行数:11,代码来源:worker_threads.ts


示例2: initialize

  initialize() {
    this._worker = new Worker(path.resolve(__dirname, './threadChild.js'), {
      eval: false,
      stderr: true,
      stdout: true,
      workerData: {
        cwd: process.cwd(),
        env: {
          ...process.env,
          JEST_WORKER_ID: String(this._options.workerId),
        } as NodeJS.ProcessEnv,
        // Suppress --debug / --inspect flags while preserving others (like --harmony).
        execArgv: process.execArgv.filter(v => !/^--(debug|inspect)/.test(v)),
        silent: true,
        ...this._options.forkOptions,
      },
    });

    this._worker.on('message', this.onMessage.bind(this));
    this._worker.on('exit', this.onExit.bind(this));

    this._worker.postMessage([
      CHILD_MESSAGE_INITIALIZE,
      false,
      this._options.workerPath,
      this._options.setupArgs,
    ]);

    this._retries++;

    // If we exceeded the amount of retries, we will emulate an error reply
    // coming from the child. This avoids code duplication related with cleaning
    // the queue, and scheduling the next call.
    if (this._retries > this._options.maxRetries) {
      const error = new Error('Call retries were exceeded');

      this.onMessage([
        PARENT_MESSAGE_CLIENT_ERROR,
        error.name,
        error.message,
        error.stack!,
        {type: 'WorkerError'},
      ]);
    }
  }
开发者ID:elliottsj,项目名称:jest,代码行数:45,代码来源:NodeThreadsWorker.ts


示例3: createContext

        };
    } else {
        const script = workerThreads.workerData;
        workerThreads.parentPort!.postMessage(script);
    }
}

{
    const { port1, port2 } = new workerThreads.MessageChannel();
    port1.on('message', (message) => console.log('received', message));
    port2.postMessage({ foo: 'bar' });
}

{
    if (workerThreads.isMainThread) {
        const worker = new workerThreads.Worker(__filename);
        const subChannel = new workerThreads.MessageChannel();
        worker.postMessage({ hereIsYourPort: subChannel.port1 }, [subChannel.port1]);
        subChannel.port2.on('message', (value) => {
            console.log('received:', value);
        });
        worker.moveMessagePortToContext(new workerThreads.MessagePort(), createContext());
    } else {
        workerThreads.parentPort!.once('message', (value) => {
            assert(value.hereIsYourPort instanceof workerThreads.MessagePort);
            value.hereIsYourPort.postMessage('the worker is sending this');
            value.hereIsYourPort.close();
        });
    }
}
开发者ID:ChaosinaCan,项目名称:DefinitelyTyped,代码行数:30,代码来源:worker_threads.ts


示例4: assert

            });
        };
    } else {
        const script = workerThreads.workerData;
        workerThreads.parentPort!.postMessage(script);
    }
}

{
    const { port1, port2 } = new workerThreads.MessageChannel();
    port1.on('message', (message) => console.log('received', message));
    port2.postMessage({ foo: 'bar' });
}

{
    if (workerThreads.isMainThread) {
        const worker = new workerThreads.Worker(__filename);
        const subChannel = new workerThreads.MessageChannel();
        worker.postMessage({ hereIsYourPort: subChannel.port1 }, [subChannel.port1]);
        subChannel.port2.on('message', (value) => {
            console.log('received:', value);
        });
    } else {
        workerThreads.parentPort!.once('message', (value) => {
            assert(value.hereIsYourPort instanceof workerThreads.MessagePort);
            value.hereIsYourPort.postMessage('the worker is sending this');
            value.hereIsYourPort.close();
        });
    }
}
开发者ID:CNBoland,项目名称:DefinitelyTyped,代码行数:30,代码来源:worker_threads.ts


示例5: send

  send(request: ChildMessage, onProcessStart: OnStart, onProcessEnd: OnEnd) {
    onProcessStart(this);
    this._onProcessEnd = onProcessEnd;

    this._retries = 0;

    this._worker.postMessage(request);
  }
开发者ID:elliottsj,项目名称:jest,代码行数:8,代码来源:NodeThreadsWorker.ts


示例6: onExit

  onExit(exitCode: number) {
    if (exitCode !== 0) {
      this.initialize();

      if (this._request) {
        this._worker.postMessage(this._request);
      }
    } else {
      this._shutdown();
    }
  }
开发者ID:Volune,项目名称:jest,代码行数:11,代码来源:NodeThreadsWorker.ts


示例7: onProcessEnd

  send(request: ChildMessage, onProcessStart: OnStart, onProcessEnd: OnEnd) {
    onProcessStart(this);
    this._onProcessEnd = (...args) => {
      // Clean the request to avoid sending past requests to workers that fail
      // while waiting for a new request (timers, unhandled rejections...)
      this._request = null;
      return onProcessEnd(...args);
    };

    this._request = request;
    this._retries = 0;

    this._worker.postMessage(request);
  }
开发者ID:Volune,项目名称:jest,代码行数:14,代码来源:NodeThreadsWorker.ts



注:本文中的worker_threads.Worker类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TypeScript wretch.default函数代码示例发布时间:2022-05-25
下一篇:
TypeScript worker-rpc.RpcProvider类代码示例发布时间:2022-05-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap