fix: 修复生成结果超时客户端无通知的问题

This commit is contained in:
foxhui
2025-12-09 00:41:40 +08:00
Unverified
parent 94e89ad0c7
commit 3b42e29341
5 changed files with 331 additions and 180 deletions
+37
View File
@@ -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 };
}