Помогите пожалуйста с порядком выполнения. Не могу понять, как сделать порядок выполнения
Есть такой код:
var needle = require("needle");
var arr = ["1","2","3"];
var arr2 = ["1e","2e","3e"];
needle.get("https://www.google.com", function(){
for(i=0; i < 3; i++){
console.log(arr[i]);
needle.get("https://www.google.com", function(){
for(i=0; i<3; i++){
console.log(arr2[i]);
}
});
}
});
Нужно чтобы после срабатывания этого кода результат был следующим:
1
1e
2e
3e
2
1e
2e
3e
3
1e
2e
3e
А получается вот так
1
2
3
1e
2e
3e
1e
2e
3e
1e
2e
3e
В needle есть поддержка Promise, попробуйте так:
// для демонстрации
const needle = {
get(idx) {
return new Promise(resolve => {
setTimeout(resolve, parseInt(Math.random() * 100))
});
}
}
const arr = [1, 2, 3]
const arr2 = ["1e", "2e", "3e"]
needle.get('https://www.google.com').then(() => {
for (let i = 0; i < 3; i++) {
needle.get('https://www.google.com').then(() => {
console.log(arr[i])
for (let j = 0; j < 3; j++) {
console.log(arr2[j])
}
})
}
})
Если надо все прям по порядку:
// для демонстрации
const needle = {
get(idx) {
return new Promise(resolve => {
setTimeout(resolve, parseInt(Math.random() * 100))
});
}
}
const arr = [1, 2, 3, 4, 5]
const arr2 = ["1e", "2e", "3e"]
needle.get('https://www.google.com').then(() => {
let lastPromise
for (let i = 0; i < 5; i++) {
let currPromise = needle.get('https://www.google.com')
if (!lastPromise)
lastPromise = currPromise
lastPromise.then(() => {
console.log(arr[i])
for (let j = 0; j < 3; j++) {
console.log(arr2[j])
}
})
}
})
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Итак, я пытаюсь написать программу, запускающую N Promise с потоком в k Promise параллельноПроблема в том, что при запуске без yield sleep 1 программа запускает...
Как задать срок хранения ключа? как предотвратить появление модального окна после закрытия а потом октрытия браузера?