我是JavaScript的新手,也是PhantomJS的新手。当我使用命令for
运行myfile.js(bears phantomjs myfile.js
循环)时,它偶尔(但肯定会)发出
NETWORK_ERR: XMLHttpRequest Exception 101: A network error occurred in synchronous requests.
每次发生此错误时,我都必须终止此过程(在终端中使用Ctrl + C),然后使用下面的bash命令继续我的工作
$ some bash command to clean the job done before error occurs
$ phantomjs myfile.js
这真的令人沮丧,尤其是我有一个很大的for
循环。所以,我想知道是否有某种方法可以在它发出
NETWORK_ERR: XMLHttpRequest Exception 101
在我粗略的想法中,我可能在myfile.js中有一些错误处理代码,或者在shell脚本文件中嵌入phantomjs myfile.js
并捕获它发生的错误。
有人可以教我怎么做吗?
这是我的主要PhantomJS代码:
// myfile.js
var request = new XMLHttpRequest();
var myURLs = ["url1","url2", ... ]; // this array contains more than 10k URLs
for (i=0; i<myURLs.length; i++) {
request.open('GET', myURLs[i], false); // synchronous request
request.setRequestHeader("HEADERKEY","HEADERVALUE");
request.send();
if (request.status === 200) {
console.log(request.responseText);
} else {
console.log("Error Code: " + request.status);
phantom.exit();
}
}
phantom.exit();
出于私人原因,我无法在myURLs
数组中共享网址。非常抱歉,但如果你从我的代码中得到一些想法,我仍然会寻求帮助。
答案 0 :(得分:0)
叹了口气,我得在这里回答我自己的问题。
PhantomJS提供了一个名为onError
的全局错误处理程序。当phantomjs抛出错误时,它非常有用。
您可以在此处找到详细信息:http://phantomjs.org/api/phantom/handler/on-error.html