feat: add node-fetch multithreaded example
[poolifier.git] / examples / typescript / http-client / node-fetch / src / main.ts
CommitLineData
11856b30
JB
1import { availableParallelism } from 'poolifier'
2import { fetchPool } from './pool.js'
3import { type WorkerResponse } from './types.js'
4
5const parallelism = availableParallelism()
6const requestUrl = 'http://localhost:8080/'
7
8const fetchPoolPromises = new Set<Promise<WorkerResponse>>()
9for (let i = 0; i < availableParallelism(); i++) {
10 fetchPoolPromises.add(fetchPool.execute({ url: requestUrl }))
11}
12
13try {
14 const now = performance.now()
15 const responses = await Promise.all(fetchPoolPromises)
16 const elapsedTime = performance.now() - now
17 console.info(
18 `Received in ${elapsedTime.toFixed(2)}ms an array with ${
19 responses.length
20 } responses from ${parallelism} parallel requests made with node-fetch on ${requestUrl}:\n`,
21 responses
22 )
23} catch (error) {
24 console.error(error)
25}