mirror of
https://github.com/foxhui/WebAI2API.git
synced 2026-06-16 21:03:59 +08:00
fix: 修复生成结果超时客户端无通知的问题
This commit is contained in:
@@ -405,3 +405,40 @@ export async function pasteImages(page, target, filePaths, options = {}) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查页面是否有效
|
||||
* @param {import('playwright-core').Page} page
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isPageValid(page) {
|
||||
try {
|
||||
return page && !page.isClosed();
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建页面关闭/崩溃监听Promise
|
||||
* @param {import('playwright-core').Page} page
|
||||
* @returns {{promise: Promise, cleanup: Function}}
|
||||
*/
|
||||
export function createPageCloseWatcher(page) {
|
||||
let closeHandler, crashHandler;
|
||||
|
||||
const promise = new Promise((_, reject) => {
|
||||
closeHandler = () => reject(new Error('PAGE_CLOSED'));
|
||||
crashHandler = () => reject(new Error('PAGE_CRASHED'));
|
||||
|
||||
page.once('close', closeHandler);
|
||||
page.once('crash', crashHandler);
|
||||
});
|
||||
|
||||
const cleanup = () => {
|
||||
if (closeHandler) page.off('close', closeHandler);
|
||||
if (crashHandler) page.off('crash', crashHandler);
|
||||
};
|
||||
|
||||
return { promise, cleanup };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user