Kev*_*vin 2 javascript puppeteer
我知道这应该很简单.但是如何返回函数外部使用的值,我无法让它工作.这适用于下载文件并在控制台中返回
价值:附件; 文件名="文件名"
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']);
});
Run Code Online (Sandbox Code Playgroud)
但这和我所尝试的一切都没有回报
await page.on('response', resp => {
var header = resp.headers();
return header['content-disposition'];
});
Run Code Online (Sandbox Code Playgroud)
我希望能够返回下载文件的文件名,文件大小等,以便在脚本中进一步使用.
如何返回并访问响应值?
您await之前不应该使用操作员page.on().
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']);
});
Run Code Online (Sandbox Code Playgroud)