尝试使用nodejs使用phantomjs来检查网站加载时间。
,但在
之后得到了此消息phantom_instance.exit();
在承诺返回后已经尝试运行此行
这是我的代码:
function timer(url) {
return new Promise(function(resolve, reject) {
let phantom_instance = null;
let sitepage = null;
let start_time = null;
let end_time = null;
let interval_obj = null;
let loading_time = 0;
phantom.create()
.then(function(instance) {
phantom_instance = instance;
return phantom_instance.createPage();
})
.then(function(page) {
sitepage = page;
page.property('viewportSize', {
width: 1280,
height: 1024
})
start_time = Date.now();
return page.open(url);
})
.then(function(status) {
return new Promise(function(resolve, reject) {
if (status == 'success') {
interval_obj = setInterval(function() {
//tell the browser to return document.readyStatue
sitepage.evaluate(function() {
return document.readyState;
})
.then(function(ready_state) {
if (ready_state == "complete") {
end_time = Date.now();
sitepage.close();
clearInterval(interval_obj);
loading_time = end_time - start_time;
return resolve(loading_time);
} else {
console.log(ready_state);
}
})
}, 1000);
} else {
//phantom_instance.exit();
return reject(status);
}
});
})
.then(function(loading_time) {
console.log("[Speed Tester] Completed in : " + loading_time);
phantom_instance.exit();
return resolve({time:loading_time});
})
});
}
有什么想法吗?
谢谢。
我可以通过执行var promise = page.close();
并等待在执行phantom_instance.exit()
之前解决的承诺来避免上述警告。