我知道这应该很简单。但是如何返回值以供函数外部使用,我无法让它工作。这可以下载文件并在控制台中返回
值:附件;文件名=“文件名”
await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', downloadPath: './tmp'})
await page.click('download');
await page.on('response', resp => {
var header = resp.headers();
console.log("value: " + header['content-disposition']);
});
但是这个和我尝试过的一切都没有返回任何内容
await page.on('response', resp => {
var header = resp.headers();
return header['content-disposition'];
});
我希望能够返回下载文件的文件名、文件大小等,以便在脚本中进一步使用。
如何返回并访问响应值?
最佳答案
您不应在 page.on()
之前使用 await
运算符。
puppeteer 师 page
类扩展了 Node.js 的原生 EventEmitter
,这意味着每当您调用 page.on()
时,您都在使用 Node.js 的 emitter.on()
设置事件监听器.
这意味着您在 page.on('response')
中包含的功能将在 response
事件触发时执行。
您不会从事件处理程序返回值。相反,事件处理程序中的功能会在事件发生时执行。
如果你想在函数中使用page.on()
的结果,可以使用以下方法:
const example_function = value => {
console.log(value);
};
page.on('response', resp => {
var header = resp.headers();
example_function(header['content-disposition']);
});
关于javascript - puppeteer 如何返回 page.on 响应值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51461890/