我想在点击按钮获取一些数据后添加延迟。 该脚本在浏览器控制台中运行。
$(pages())获取分页按钮。
var request = require("request");
request(url)
.on('response', function(response) {
console.log(response.statusCode); // 200
console.log(/* I need to get response body string here */); // <--- can I have the response body as a string here?
})
.on("error", function(err){
console.log("Problem reaching URL: ", err);
});
答案 0 :(得分:1)
您可以使用$.map()
,.delay()
,.queue()
,.promise()
$(() => {
$("a").on("click", e => {
e.preventDefault();
console.log("clicked")
});
$({}).queue("pages"
, $.map($("a") /* Array.from({length:callPagesCount}, (_, i) => i + 1) */
, (el, i) =>
(next) => {
el.click();
/*
$(pages()).find('a')[i].click()
*/
$({}).delay(1000 /* 200 */ , "delay")
.queue(_next => {
/*
callsNode().map((i, el) => {
calls.push({
call_condition: $(el).find('div > span').text().trim(),
date: $(el).find('div').text().trim().match(/\[(.+)\]/i),
})
})
*/
_next();
}).dequeue("delay")
.promise("delay").then(next)
}
)).dequeue("pages");
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<a href="">a</a>
<a href="">b</a>
答案 1 :(得分:0)
延迟JavaScript的一种简单方法是使用setTimeout函数。
setTimeout((() => {
// do something after a delay
}), 200);
将200
更改为您想要等待的时间(以毫秒为单位)。
在您的情况下,看起来您想将callNodes.map()...
放在setTimeout中:
let calls = [];
for (let i = 1; i <= callPagesCount; i++) {
$(pages()).find('a')[i].click()
setTimeout((() => {
// Call the below, 200 ms later
callsNode().map((i, el) => {
calls.push({
call_condition: $(el).find('div > span').text().trim(),
date: $(el).find('div').text().trim().match(/\[(.+)\]/i),
})
})
}), 200);
}