mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
feat(new-docs): add tsdoc comments to WebWorker (#6029)
* feat(new-docs): add TSDoc comments to `WebWorker` Co-authored-by: martinsplitt <martin@geekonaut.de>
This commit is contained in:
@@ -30,12 +30,35 @@ type ExceptionThrownCallback = (
|
||||
) => void;
|
||||
type JSHandleFactory = (obj: Protocol.Runtime.RemoteObject) => JSHandle;
|
||||
|
||||
/**
|
||||
* The WebWorker class represents a {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API | WebWorker}.
|
||||
*
|
||||
* @remarks
|
||||
* The events `workercreated` and `workerdestroyed` are emitted on the page object to signal the worker lifecycle.
|
||||
*
|
||||
* @example
|
||||
* ```js
|
||||
* page.on('workercreated', worker => console.log('Worker created: ' + worker.url()));
|
||||
* page.on('workerdestroyed', worker => console.log('Worker destroyed: ' + worker.url()));
|
||||
*
|
||||
* console.log('Current workers:');
|
||||
* for (const worker of page.workers()) {
|
||||
* console.log(' ' + worker.url());
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export class WebWorker extends EventEmitter {
|
||||
_client: CDPSession;
|
||||
_url: string;
|
||||
_executionContextPromise: Promise<ExecutionContext>;
|
||||
_executionContextCallback: (value: ExecutionContext) => void;
|
||||
|
||||
/**
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
constructor(
|
||||
client: CDPSession,
|
||||
url: string,
|
||||
@@ -76,14 +99,30 @@ export class WebWorker extends EventEmitter {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns The URL of this web worker.
|
||||
*/
|
||||
url(): string {
|
||||
return this._url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the ExecutionContext the WebWorker runs in
|
||||
* @returns The ExecutionContext the web worker runs in.
|
||||
*/
|
||||
async executionContext(): Promise<ExecutionContext> {
|
||||
return this._executionContextPromise;
|
||||
}
|
||||
|
||||
/**
|
||||
* If the function passed to the `worker.evaluate` returns a Promise, then `worker.evaluate` would wait for the promise to resolve and return its value.
|
||||
* If the function passed to the `worker.evaluate` returns a non-serializable value, then `worker.evaluate` resolves to `undefined`. DevTools Protocol also supports transferring some additional values that are not serializable by `JSON`: `-0`, `NaN`, `Infinity`, `-Infinity`, and bigint literals.
|
||||
* Shortcut for `await worker.executionContext()).evaluate(pageFunction, ...args)`.
|
||||
*
|
||||
* @param pageFunction - Function to be evaluated in the worker context.
|
||||
* @param args - Arguments to pass to `pageFunction`.
|
||||
* @returns Promise which resolves to the return value of `pageFunction`.
|
||||
*/
|
||||
async evaluate<ReturnType extends any>(
|
||||
pageFunction: Function | string,
|
||||
...args: any[]
|
||||
@@ -94,6 +133,14 @@ export class WebWorker extends EventEmitter {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* The only difference between `worker.evaluate` and `worker.evaluateHandle` is that `worker.evaluateHandle` returns in-page object (JSHandle).
|
||||
* If the function passed to the `worker.evaluateHandle` returns a [Promise], then `worker.evaluateHandle` would wait for the promise to resolve and return its value.
|
||||
* Shortcut for [(await worker.executionContext()).evaluateHandle(pageFunction, ...args)](#executioncontextevaluatehandlepagefunction-args).
|
||||
* @param pageFunction - Function to be evaluated in the page context.
|
||||
* @param args - Arguments to pass to `pageFunction`.
|
||||
* @returns Promise which resolves to the return value of `pageFunction`.
|
||||
*/
|
||||
async evaluateHandle(
|
||||
pageFunction: Function | string,
|
||||
...args: any[]
|
||||
|
||||
Reference in New Issue
Block a user