Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新手-mac上控制Chrome的Javascript代码_Javascript_Macos_Google Chrome - Fatal编程技术网

新手-mac上控制Chrome的Javascript代码

新手-mac上控制Chrome的Javascript代码,javascript,macos,google-chrome,Javascript,Macos,Google Chrome,我一直在通过openstack学习javascript,需要一些指导,我已经编写了以下代码,用chrome(我的默认浏览器)打开一个网站,等待5秒钟,然后使用do/while循环刷新10次 当我想从终端运行它时,它看起来正常吗?我一直在Chrome开发者控制台中运行这个程序,我想在我的mac(10.9.5)上运行它,这是通过automator运行的吗 非常感谢您的帮助 var vcount=0; 功能睡眠(时间){ 返回新承诺((resolve)=>setTimeout(resolve,tim

我一直在通过openstack学习javascript,需要一些指导,我已经编写了以下代码,用chrome(我的默认浏览器)打开一个网站,等待5秒钟,然后使用do/while循环刷新10次

当我想从终端运行它时,它看起来正常吗?我一直在Chrome开发者控制台中运行这个程序,我想在我的mac(10.9.5)上运行它,这是通过automator运行的吗

非常感谢您的帮助

var vcount=0;
功能睡眠(时间){
返回新承诺((resolve)=>setTimeout(resolve,time));
}
做{
window.location.assign(“https://www.w3schools.com");
睡眠(10000)。然后(()=>{});
vcount++;
}
而(vcount<10)您需要使用wait来真正暂停执行:

(async function(){
  do {
   window.location.assign("https://www.w3schools.com");
   await  sleep(10000);
   vcount++;
  } while (vcount < 10);
})();
(异步函数(){
做{
window.location.assign(“https://www.w3schools.com");
等待睡眠(10000);
vcount++;
}而(vcount<10);
})();

有很多方法可以做你想做的事,@JonasW给出了其中一种方法,这里有一种替代方法:

function sleep(ms) {
  const waitUntil = new Date().getTime() + ms;
  while (new Date().getTime() < waitUntil) true;
}

不,因为
睡眠(10000)。然后(()=>{})
不“暂停”-而且,一旦您更改当前位置,此脚本将不再位于当前页面中,因此,无论如何都不会运行啊,谢谢Jonas,我正在尝试查找那种类型的命令,我正在搜索“sleep”和“wait”,然后偶然发现我使用的方法,我将使用您的代码!谢谢你,亚瑟,有什么理由用一种方法胜过另一种方法吗?还有,为什么一个动作有多种方法@PCF是的,有一个原因:并非所有浏览器都支持相同的功能,
await
Promise
是在最新版本的JavaScript中引入的,并且在最新版本的Chrome、Safari和Firefox上都受支持。如果你使用我的方法,它将在更多的浏览器上得到支持,比如IE。是的,在每种编程语言中,都有很多方法可以做同样的事情。这就像同义词。这是一种更糟糕的做法,因为它会冻结浏览器。@JonasW。是的,但如果您以异步方式执行,例如使用
setTimeout(yourFunction,0)
,则不会。让我编辑我的答案
setTimeout(function() {
    /* Your code */
}, 0)