【发布时间】:2018-06-21 17:49:17
【问题描述】:
我认为我有一个很好的发现可以找到我从 puppeteer 那里得到的那些罕见的超时,但是有些超时没有被它们中的任何一个捕获 - 我的问题是为什么?
代码如下:
var readHtml = (url) => {
return new Promise( async (resolve,reject)=> {
var browser = await puppeteer.launch()
var page = await browser.newPage()
await page.waitForSelector('.allDataLoaded')
.then(() => {
console.log ("Finished reading: " + url)
return resolve("COOL");
})
.catch((err) => {
console.log ("Timeout or other error: ", err)
return resolve("TRYAGAIN");
});
})}
这是错误....
(node:23124) UnhandledPromiseRejectionWarning: Error: Navigation Timeout Exceeded: 30000ms exceeded at Promise.then
(node:23124) UnhandledPromiseRejectionWarning:
Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
我做了一些研究,说这可能是因为 puppeteer newPage() 中有一些 url 尚未完成
但是我的 .catch 怎么不咳嗽呢?
我需要它“TRYAGAIN”,以防它因任何原因而失败。 现在它只是因错误而停止并且什么也不做。
【问题讨论】:
标签: javascript promise puppeteer