Пример кода:
Вот моя задержка function:
Код: Выделить всё
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
< /code>
А вот моя основная функция, которая проходит через массив (data
Код: Выделить всё
const main = async () => {
for (const row of data) {
console.log("Processing:", row.number);
await delay(2000); // Introduce a 2-second delay before making API calls
console.log("Waited 2 seconds, now processing next item...");
const numberExists = await fetchContacts(row.number);
if (!numberExists) {
const createdContact = await createContactIfNotExists({
NAME: row.name,
PHONE: [{ VALUE: row.number }],
});
await delay(2000);
const createdDeal = await createDeal({
TITLE: row.name,
STAGE_ID: "C9:NEW",
CATEGORY_ID: 9,
});
await delay(2000);
await addContactsToDeal(createdDeal.data, createdContact.data);
}
}
};
main();
- Задержка (2000) не кажется На самом деле pause выполнение до следующей итерации.
- Когда я заменяю его на , непосредственно возвращаемое обещание , он работает нормально:
Но я не понимаю, почему это имеет значение.
Код: Выделить всё
await new Promise((resolve) => setTimeout(resolve, 2000));
- проверяется, если Doled () правильно ожидается - да, я использую await delay (2000) .
- Зарегистрированные операторы Inside () - функция вызывается, но выполнение не пауза, как и ожидалось.
попытался заменить на ... из с помощью foreach () loop - но foreach () не поддерживает Async/await , так что это не вариант.
[*] Почему Await Dolement (2000) (используя мою функцию задержки ), не ведущий то же самое, что await wave new Promise ((Resolve) => settimeout (Resolve, 2000 )) ?
[*] Что может привести к задержке () в некоторых случаях, даже когда правильно ожидается?
< li> Есть ли лучший способ представить задержки между вызовами API в асинхронном цикле? Заранее спасибо.
Подробнее здесь: https://stackoverflow.com/questions/794 ... oops-in-an