我想知道我怎么能等待两次5秒并在每次等待时使用phantomjs做不同的事情。这是代码:
var page = require('webpage').create();
page.open("http://www.google.com/", function(status){
var currentdate = new Date();
console.log("\n\n" + currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + currentdate.getSeconds() + "\n\n");
setTimeout(function(){
var currentdate1 = new Date();
console.log("\n\n" + currentdate1.getHours() + ":" + currentdate1.getMinutes() + ":" + currentdate1.getSeconds() + "\n\n");
return "hahaha";
}, 5000);
setTimeout(function(){
var currentdate2 = new Date();
console.log("\n\n" + currentdate2.getHours() + ":" + currentdate2.getMinutes() + ":" + currentdate2.getSeconds() + "\n\n");
phantom.exit();
return "hahaha";
}, 5000);
});
为什么phantomjs第二个setTimeout函数不能正常工作?我怎么解决这个问题? 我想要实现的输出是:
16:13:10
16:13:15
16:13:20
而不是这样(就像现在一样):
16:13:10
16:13:15
16:13:15
抱歉我的英语不好。感谢
答案 0 :(得分:2)
setTimeout
是异步的,当你启动它时,代码不会停止运行,它继续运行其他部分,你开始第二个setTimeout
。要解决您的问题,您需要将第二个超时的延迟更改为10000
,或者需要在第一个超时内开始第二个超时。