установка таймаута в ожидании обещания - PullRequest
0 голосов
/ 11 марта 2020

У меня есть следующий код:

ig = await login({
            inputLogin: username,
            inputPassword: 'thisispassword',
            silentMode: true,
            //inputProxy: 'http://' + randomProxy,
            inputProxy: false,
            onlineMode: false,

        });

однако в случае плохих соединений и какого-то рода разъединений, вход в систему просто зависнет там .. поэтому я хотел иметь некоторое время ожидания для этого входа в систему , поэтому я изменил его, чтобы использовать Promise.race ... однако после изменения кода для этого

ig = await Promise.race([login({
            inputLogin: username,
            inputPassword: 'thisispassword',
            silentMode: true,
            //inputProxy: 'http://' + randomProxy,
            inputProxy: false,
            onlineMode: false,

        }), pause(10000)]);

он жалуется, что не может найти паузу ... что я делаю здесь неправильно? я в основном хочу установить время ожидания входа в систему на 10 секунд, если обратный вызов ничего не возвращает в течение этого периода

1 Ответ

1 голос
/ 11 марта 2020

pause не является стандартной JavaScript глобальной функцией или стандартной Node.js глобальной функцией.

Если вы хотите, чтобы функция ожидала заданное количество миллисекунд, прежде чем выполнить обещание, вы нужно написать это:

function pause(ms, value) {
    return new Promise(resolve => setTimeout(resolve, ms, value));
}

Но настройка логики c из login так, чтобы вместо нее применялся тайм-аут, кажется более подходящим подходом, если это вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...