MCPcopy Index your code
hub / github.com/angular/angular / patchMacroTask

Function patchMacroTask

packages/zone.js/lib/common/utils.ts:471–501  ·  view source on GitHub ↗
(
  obj: any,
  funcName: string,
  metaCreator: (self: any, args: any[]) => MacroTaskMeta,
)

Source from the content-addressed store, hash-verified

469
470// TODO: @JiaLiPassion, support cancel task later if necessary
471export function patchMacroTask(
472 obj: any,
473 funcName: string,
474 metaCreator: (self: any, args: any[]) => MacroTaskMeta,
475) {
476 let setNative: Function | null = null;
477
478 function scheduleTask(task: Task) {
479 const data = <MacroTaskMeta>task.data;
480 data.args[data.cbIdx] = function () {
481 task.invoke.apply(this, arguments);
482 };
483 setNative!.apply(data.target, data.args);
484 return task;
485 }
486
487 setNative = patchMethod(
488 obj,
489 funcName,
490 (delegate: Function) =>
491 function (self: any, args: any[]) {
492 const meta = metaCreator(self, args);
493 if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {
494 return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);
495 } else {
496 // cause an error by calling it directly.
497 return delegate.apply(self, args);
498 }
499 },
500 );
501}
502
503export interface MicroTaskMeta extends TaskData {
504 name: string;

Callers 3

patchFsFunction · 0.90
patchNodeFunction · 0.90

Calls 3

patchMethodFunction · 0.85
applyMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…