.forEach()
должен выполняться дольше, потому что он сначала должен инициализировать коллбэк-функции ко всем элементам и только потом их выполнять. та вот как раз с async/await не могу разобраться пока
await
к промису или объекту у которого есть метод .then()
и весь дальнейший код этой функции формально будет как бы внутри .then()
, но в коде явно этого указано не будет, по-этому код будет читаться лучше. Ну и конечно await
будет работать только внутри функции, которая объявления как async
. Можно объявить анонимную функции, как в примере выше, который я вам написал. (async () => {
var res;
const result = await query('SELECT test FROM test WHERE id=1 LIMIT 1');
if (result) {
res = result[0].test;
console.log("result = "+res);
}
console.log("result out = "+res);
})();
for..of
работает асинхронно:const arr = [1000, 1000, 1000];
for (let timeout of arr) {
setTimeout(() => {
console.log('done');
}, timeout);
}
forEach
и map
выполняют коллбэк-функцию при каждой итерации, эта функция будет не синхронная и никакого ответа от промиса при каждой итерации она естественно не ждет. input[type="date"]
то он уже отдает дату в нужном для Date()
стандарте (ГОД-МЕСЯЦ-ДЕНЬ). Тут вообще мудрить ничего не нужно:export function StrDateToUnix(strDate) {
return Math.round(new Date(strDate).getTime()/1000)
}
Date()
. Возможно это формат ГОД-МЕСЯЦ-ДЕНЬ function avg(data) { // функция получения среднего значения из массива данных
let sum = 0;
data.forEach(n => {
sum += n; // добавляем в sum текущий элемент массива
});
return (sum / data.length); // расчитываем среднее значение
}
let data = [];
let countValues = 0;
while(true) { // бесконечный цикл получения значений
const value = prompt('введите значение от 1 до 100!:','');
if (value > 0 && value < 100) { // если введенное значение подходит в наш интервал - добавляем его в массив
data.push(+value);
countValues++;
}
if (countValues === 3) break; // если введено три значения - прекращаем цикл
}
console.log(avg(data));