如果梦魇waitTimeout超过

时间:2017-05-16 18:23:19

标签: javascript web-scraping phantomjs nightmare

使用nightmareJS,如果超过waitTimeout限制,有没有办法调用函数?现在它正在给我一个承诺拒绝警告

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: .wait() timed out after 10000msec

我想知道如果收到此错误,是否有任何方法可以调用函数。我的代码结构如下:

var Nightmare = require('nightmare');       
var nightmare = Nightmare({ show: true, waitTimeout: 10000});
nightmare.goto(my_url);
nightmare.wait(my_element);
nightmare.evaluate(function() {...});
nightmare.then(function(result) {...code that could give a promise warning...});

我可以在goto和then语句中添加一个catch子句(如Belfordz推荐的那样),这样可以工作,但是then语句中有其他嵌套的then语句。我更喜欢单个语句,可以捕获任何承诺警告或引发的超时错误。

1 个答案:

答案 0 :(得分:0)

错误表示在10秒的延迟内未在当前页面上找到General

但是,按照编码方式,您同步调用方法my_elementgotowaitevaluate,而内部调用它们承诺机制,即通过“链接”调用,否则很快就会执行:

then