messages.ts 537 B

12345678910111213141516171819
  1. import Piscina from '..';
  2. import { test } from 'tap';
  3. import { resolve } from 'path';
  4. import { once } from 'events';
  5. test('Pool receive message from workers', async ({ equal }) => {
  6. const pool = new Piscina({
  7. filename: resolve(__dirname, 'fixtures/eval.js')
  8. });
  9. const messagePromise = once(pool, 'message');
  10. const taskResult = pool.runTask(`
  11. require('worker_threads').parentPort.postMessage("some message");
  12. 42
  13. `);
  14. equal(await taskResult, 42);
  15. equal((await messagePromise)[0], 'some message');
  16. });