Как добавить 5 секунд задержки без блокировки пользовательского интерфейса с помощью ES6 async/await

Вам нужно будет промисифицировать функцию sleep вручную.

function timeout(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
async function sleep(fn, ...args) {
    await timeout(3000);
    return fn(...args);
}
Вход в полноэкранный режим Выход из полноэкранного режима

Кстати, для замедления цикла вы, вероятно, не захотите использовать функцию sleep, которая принимает обратный вызов и откладывает его, как здесь:

while (goOn) {
  // other code
  var [parents] = await Promise.all([
      fn(...args).then(
        //code here
      ),
      timeout(5000)
  ]);
  // other code
}
Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий