Javascript 如果超过超时,则调用函数
使用噩梦EJS,如果超过waitTimeout限制,是否有方法调用函数?现在它给了我一个拒绝承诺的警告Javascript 如果超过超时,则调用函数,javascript,web-scraping,phantomjs,nightmare,Javascript,Web Scraping,Phantomjs,Nightmare,使用噩梦EJS,如果超过waitTimeout限制,是否有方法调用函数?现在它给了我一个拒绝承诺的警告 UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: .wait() timed out after 10000msec 我想知道如果收到此错误,是否有方法调用函数。我的代码结构如下: var Nightmare = require('nightmare');
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语句。我更喜欢单个语句,它可以捕获抛出的任何承诺警告或超时错误 该错误意味着在延迟10秒内未在当前页面上找到
my_元素
但是,按照编码方式,您正在同步调用方法goto
,wait
,evaluate
,然后
,而它们应该由内部承诺机制调用,即通过“链接”调用,否则它们很快就会执行:
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true, waitTimeout: 10000});
nightmare.goto(my_url) // <-- don't end the statement here, continue the chain:
.wait(my_element)
.evaluate(function() {...})
.then(function(result) {...});
var噩梦=require(“噩梦”);
var噩梦=噩梦({show:true,waitTimeout:10000});
goto(my_url)//听起来您只需要在承诺拒绝的内容中添加catch子句