//Ваша функция запроса, я же просто посчитаю рандомы для примера
//Значение аргумента по умолчанию подставил для 1-ого случая, у Вас же может быть проверка
function someAsync(cur = 1){
return Promise.resolve(cur * Math.random());
}
//Функция раннер, которая будет асинхронно-рекурсивно перевызываться
function run(next){
return someAsync(next).then(result => {
if(result < 0.1) { //Некое условие, что последний результат получен
return result;
}
return run(result); //Перезапуск
});
}
run().then(result => console.log('Последний результат:', result));
async function saveData(data) {
for(let id of Object.keys(data)) {
await appendFile(fileName, id);
await appendFile(fileName, data[id]);
}
}
saveData({cat:1,dog:2})
let data = {cat:1,dog:2};
Object.keys(data).reduce(
(p, id) => p
.then(() => appendFile(fileName, id))
.then(() => appendFile(fileName, data[id])),
Promise.resolve()
);
$('#marka option').each(function () {
var $this = $(this);
if (location.href.indexOf($this.val()) === -1) {
// не содержит
} else {
$this.prop('selected', true);
}
});
Array.prototype.forEach.call(document.getElementById('marka').options, function(opt) {
if (location.href.indexOf(opt.value) === -1) {
// не содержит
} else {
opt.selected = true;
}
});
pasteControlItem: function () {
let item = document.querySelectorAll('.todo__item');
for (let i = 0; i < item.length; i++) {
let control = document.createElement('i');
control.setAttribute('aria-hidden', 'true');
control.classList.add('fa');
control.classList.add('fa-circle-thin');
item[i].insertBefore(control, item[i].childNodes[0]);
}
}
pasteControlItem: function () {
let item = document.querySelectorAll('.todo__item');
for (let i = 0; i < item.length; i++) {
item.insertAdjacentHTML('afterBegin', '<i aria-hidden="true" class="fa fa-circle-thin"></i>');
}
}