Я немного не понимаю как Node js, функцию сделать асинхронной?
const asyncFn = () => new Promise((resolve, reject) => {
// do some async call and resolve or reject
});
const delay = duration => new Promise(res => setTimeout(res, duration));
delay(200).then(() => {
// do something after delay
});
const asyncFn = async () => {
// do something with awaiting async call result or not
// and return result or not
});
const getSomeData = async () => {
const result = await someAsyncCall();
return someOtherAsyncCall(result);
};
const asyncFn = cb => {
// do some async call and call cb
}
const delay = (duration, cb) => setTimeout(cb, duration));
delay(200, () => {
// do something after delay
});
как определить функция которую вызываю она синхронная или асинхронная ?
const url = i.querySelector('.msga2 > a')?.getAttribute('href');
let link;
if (url) {
link = 'https://www.doska.by/' + url
}
const data = [];
document.querySelectorAll('.item_row').forEach(row => {
const region = row.querySelector('.item_region > a')?.textContent?.trim();
if (region !== 'Минск') return;
const name = row.querySelector('.title')?.textContent;
const link = 'https://zooby.by/' + row.getAttribute('href');
data.push({ name, link });
});
/../../../style.css
../../../style.css
./../../../style.css
Как восстановить файл css?
<div class="course-modules">
<div class="course-modules__wrapper">
<div class="course-modules__card card">
<div class="card__image">
<img src="img/intro.png">
</div>
<div class="card__content">
<h3 class="card__title">Введение</h3>
<ul class="card__list">
<li>Как работают сайты. Верстка</li>
<li>Возможности HTML, CSS, JS</li>
<li>Редактор кода. Codepen</li><li>
</li><li>Работа с Devtools</li>
</ul>
</div>
<p class="card__number">01</p>
</div>
<div class="course-modules__card card">
<div class="card__image">
<img src="img/intro.png">
</div>
<div class="card__content">
<h3 class="card__title">Введение</h3>
<ul class="card__list">
<li>Как работают сайты. Верстка</li>
<li>Возможности HTML, CSS, JS</li>
<li>Редактор кода. Codepen</li><li>
</li><li>Работа с Devtools</li>
</ul>
</div>
<p class="card__number">01</p>
</div>
<div class="course-modules__card card">
<div class="card__image">
<img src="img/intro.png">
</div>
<div class="card__content">
<h3 class="card__title">Введение</h3>
<ul class="card__list">
<li>Как работают сайты. Верстка</li>
<li>Возможности HTML, CSS, JS</li>
<li>Редактор кода. Codepen</li><li>
</li><li>Работа с Devtools</li>
</ul>
</div>
<p class="card__number">01</p>
</div><div class="course-modules__card card">
<div class="card__image">
<img src="img/intro.png">
</div>
<div class="card__content">
<h3 class="card__title">Введение</h3>
<ul class="card__list">
<li>Как работают сайты. Верстка</li>
<li>Возможности HTML, CSS, JS</li>
<li>Редактор кода. Codepen</li><li>
</li><li>Работа с Devtools</li>
</ul>
</div>
<p class="card__number">01</p>
</div>
</div>
</div>
.course-modules {}
.course-modules__wrapper {
display: grid;
grid-template-columns: 300px 300px;
}
.course-modules__card {
border: 1px solid #000;
margin: 10px;
}
.card {}
.card__wrapper {
margin: 10px;
}
.card__image {
}
.card__img {
width: 100%;
}
.card__content {
padding: 15px 15px 0 15px;
}
.card__title {
font-size: 25px;
margin: 10px 0;
}
.card__list {
list-style-type: none;
display: block;
padding: 0;
margin: 0;
}
.card__number {
margin: 5px 10px;
font-size: 25px;
text-align: right;
}
let count;
document.querySelectorAll(".slider__item").forEach((item) => {
item.addEventListener("click", (event) => {
const currentItem = event.target.closest(".slider__item");
count = currentItem.dataset.slickIndex; // Новая строка
currentItem.classList.toggle("opened");
removeClasses(currentItem);
});
});
document.addEventListener("keydown", (e) => {
if (count === undefined) return;
if (e.key === 'ArrowLeft') {
const currentSlide = document.querySelector(`[data-slick-index='${count}']`);
const nextSlide = document.querySelector(`[data-slick-index='${+count - 1}']`);
currentSlide.classList.remove("opened");
nextSlide.classList.add('opened')
count--;
} else if (e.key === 'ArrowRight') {
const currentSlide = document.querySelector(`[data-slick-index='${count}']`);
const nextSlide = document.querySelector(`[data-slick-index='${+count + 1}']`);
currentSlide.classList.remove("opened");
nextSlide.classList.add('opened')
count++;
}
});
function createSauseItem() {
for (let i = 0; i < sauseName.length; i++) {
let newItem = document.createElement('div');
newItem.className = ('item sauce__item');
const itemText = `<div class="item sauce__item">
${i === 0 ? `<b><div class="item__promo sause-item__promo">NEW</div></b>` : i === 1 ? `<b><div class="item__promo sause-item__promo">ХИТ</div></b>` : 0}
<img draggable="false"
src="${(sauseImg[i])}"
alt="sause"
class="item__image sauce__image"
/>
<div class="item__name sauce__name">${(sauseName[i])}</div>
<div class="item__descr desserts__descr">${(sauseDescr[i])}</div>
<div class="item__bottom_choise">
<button class="btnchoise sause__button">Выбрать</button>
<div class="item__costs sauce__costst" data-price="${(dataPrice[i])}">${(sauseCosts[i])}</div>
</div>
</div>`;
newItem.innerText = itemText;
sause.insertAdjacentHTML('beforeend', itemText)
}
}