我想知道在执行之后的事情时如何使setTimeout等待。
setTimeout( function() { console.log("First"); }, 5000 );
console.log("Second");

在控制台中我想看到: 第一 第二
"首先" 5秒后然后"秒"就在" First" 但真正发生的是我有"第二" 5秒后"第一"
如何解决这个问题?
答案 0 :(得分:1)
如果IE is not priority并允许您使用Promise,那么您可以使用简单的wait
函数作为setTimeout
使用并返回Promise
method chaining:
function wait(t) {
return new Promise(function(resolve) {
window.setTimeout(resolve, t)
});
}
wait(5000)
.then(function(){ console.log("First"); })
.then(function(){ console.log("Second"); });

答案 1 :(得分:0)
setTimeout( function() { console.log("First"); }, 1000 );
setTimeout( function() { console.log("Second"); }, 1000 );

答案 2 :(得分:0)
我想知道在执行之后的事情时如何使setTimeout等待。
我认为“等待”的JavaScript函数是setTimeout
。这意味着您可以通过将一个setTimeout
函数嵌套在另一个函数中来实现此目的。
setTimeout(function() {
setTimeout(function() {
console.log('Second');
}, 100);
console.log('First');
}, 5000);
答案 3 :(得分:0)
如果您之后执行的不仅仅是控制台日志,您可以编写一个新函数以在setTimeout之后运行。记录“First”后,将出现“second”函数中的任何内容。
var second = function () {
console.log("Second");
}
setTimeout( function() {
console.log("First");
second();
}, 5000 );
答案 4 :(得分:-1)
Javascript不保证代码中的线性执行顺序。在引入超时或异步任务时,您不能指望您的代码逐行执行。
您可以在解析功能中打印两行:
self.driver.get('urls_from_command_line')