javascript - 如何从 page.on 函数中获取价值?
问题描述
在 page.on 方法中,我正在解析“content-disposition”标头并检索下载的文件名。
谁能告诉我如何使文件名在page.on方法之外可用?
page.on('response', response => {
let url = response.request().url();
let contentType = response.headers()['content-type'];
if (contentType == 'audio/mpeg') {
let contentDisposition = response.headers()['content-disposition'];
let filename = contentDisposition.match(/filename="(.+)"/)[1];
}
});
解决方案
经过更多阅读后,我认为我尝试使用page.on以错误的方式接近它,而我本应该使用page.waitForResponse。
page.waitForResponse使我能够在每次单独下载.click()后立即获得每个文件名响应,并在尾随代码中使用它。
唯一的问题是这种方法似乎不像page.on那样可靠,有时它会错过发生的下载然后超时。我需要找出为什么会发生这种情况的解决方案。
const response = await page.waitForResponse(
response => response.headers()['content-type'] == 'audio/mpeg'
);
let filename = response._headers['content-disposition'].match(/filename="(.+)"/)[1];
console.log(filename);
推荐阅读
- pandas - 在数据框中的列值就像 6.680713e+07 我如何从熊猫数据框中的这个值中删除 e+
- webrtc - 如何在 webrtc Swift 中录制通话 - iOS
- c++ - 将蓝牙功能添加到我的操作系统蓝牙功能
- haskell - 三便士 GUI - 使用带有画布的接收器
- php - Nginx,PHP:错误524,发生超时(在长时间的工作过程中)
- react-native - 在单击底部选项卡导航器上反应导航关闭抽屉
- html - nativescript UI 中哪个组件可以替代 Kendo 面板栏
- javascript - 在Javascript中同时显示多个密码的任何方式?
- html - 在 IE 11 Dom Explorer 中复制完整的 DomX 路径
- tensorflow - 为什么 TensorFlow 的 MirroredStrategy 和 OneDevicestrategy 在 colab 上不起作用?