I need it to pause for 3 seconds at the end of every loop, but it's not pausing. How do I fix this? Example codes would be appreciated.
function file_get_contents(url, callback) {
fetch(url).then(res => res.text()).then(text => callback(text));
}
function theCallBack(text) {
text = text.replace(/google/g, "")
let matches = text.match(/www.[a-z\-]+?.com/g);
console.log(matches[0]);
};
var theArray = ["https://www.google.com/search?q=one", "https://www.google.com/search?q=two", "https://www.google.com/search?q=three"];
var count = theArray.length;
while (count > 0) {
console.log(count);
count--;
file_get_contents(theArray[count], theCallBack);
setTimeout(function() {}, 3000);
}
You can use a Promise to pause the program and await it.
const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
function file_get_contents(url, callback) {
fetch(url).then(res => res.text()).then(text => callback(text));
}
function theCallBack(text) {
text = text.replace(/google/g, "")
let matches = text.match(/www.[a-z\-]+?.com/g);
console.log(matches[0]);
};
var theArray = ["https://www.google.com/search?q=one", "https://www.google.com/search?q=two", "https://www.google.com/search?q=three"];
var count = theArray.length;
(async() => {
for (let i = 0; i < count; i++) {
console.log(i + 1);
file_get_contents(theArray[i], theCallBack);
await wait(3000);
}
})();
I think problem is setTineout() async function, so you need make it sync, to work as you want.
https://developer.mozilla.org/ru/docs/Learn/JavaScript/Asynchronous/Timeouts_and_intervals