MCPcopy Create free account
hub / github.com/nodejs/node-addon-api / asyncProgressWorkerRecvOverloads

Function asyncProgressWorkerRecvOverloads

test/async_progress_worker.js:59–106  ·  view source on GitHub ↗
(bindingFunction)

Source from the content-addressed store, hash-verified

57}
58
59async function asyncProgressWorkerRecvOverloads (bindingFunction) {
60 const recvObject = {
61 a: 4
62 };
63
64 function cb () {
65 assert.strictEqual(this.a, recvObject.a);
66 }
67
68 bindingFunction(recvObject, common.mustCall(cb));
69 if (!checkAsyncHooks()) {
70 return;
71 }
72 const asyncResources = [
73 { resName: 'cbRecvResources', resObject: {} },
74 { resName: 'cbRecvResourcesObject', resObject: { foo: 'bar' } }
75 ];
76
77 for (const asyncResource of asyncResources) {
78 const asyncResName = asyncResource.resName;
79 const asyncResObject = asyncResource.resObject;
80
81 const hooks = common.installAysncHooks(asyncResource.resName);
82 const triggerAsyncId = asyncHooks.executionAsyncId();
83 await new Promise((resolve, reject) => {
84 if (Object.keys(asyncResObject).length === 0) {
85 bindingFunction(recvObject, common.mustCall(cb), asyncResName);
86 } else {
87 bindingFunction(recvObject, common.mustCall(cb), asyncResName, asyncResObject);
88 }
89
90 hooks.then(actual => {
91 assert.deepStrictEqual(actual, [
92 {
93 eventName: 'init',
94 type: asyncResName,
95 triggerAsyncId,
96 resource: asyncResObject
97 },
98 { eventName: 'before' },
99 { eventName: 'after' },
100 { eventName: 'destroy' }
101 ]);
102 }).catch(common.mustNotCall());
103 resolve();
104 });
105 }
106}
107
108async function asyncProgressWorkerNoCbOverloads (bindingFunction) {
109 bindingFunction(common.mustCall(() => {}));

Callers 1

testFunction · 0.70

Calls 1

checkAsyncHooksFunction · 0.70

Tested by 1

testFunction · 0.56