// тут работаем с response
Суть - оборачиваем каждое действие в замыкание и выполняем циклом.
...
await Promise.all([
page.click(this.element),
this.observeXhrLotData(page)
])
...
observeXhrLotData() {
return (p) => {
return (new Promise((resolve, reject) => {
let listener = async (response) => {
let m
if ((m = this.lotDetailsUriPattern.exec(response.url())) !== null) {
try {
await Storage.getDisk('local').put(`${this.dataPath}/${m[4]}.json`, await response.text())
p.removeListener('response', listener)
resolve()
} catch (error) {
console.log(error)
}
}
}
p.on('response', listener);
}))
}
}
await page.$(selector) !== null