Есть события (events) на которые я подписываюсь (данные события делают запрос на сторонний сервис и получают информацию). После получения информации, я заполняю объект данными.
Загвоздка в том, что я хочу дождаться заполнения объекта всеми данными и в дальнейшем передать его дальше...
Пример кода:
function checkAccountInfo() {
let accountInfo = {};
event.on('anyEvent1', function(name) {
accountInfo.name = name;
});
event.on('anyEvent2', function(address) {
accountInfo.address = address;
});
}
Промисы (Promise) здесь, как я понял бесполезны, так как коннект/запрос/ответ с небольшой задержкой... И промис в любом случае даёт положительный (resolve) результат (даже если ответ ещё не пришёл)
Каким способом лучше проверить заполнение объекта? Или же есть более простой способ в моём случае?
Вы можете использовать промисы.
// Эмуляция асинхронных операций
const event = {
on: function(name, callback) {
setTimeout(function() {
callback(name);
}, Math.round(Math.random() * 4000));
}
}
function checkAccountInfo() {
let accountInfo = {};
let promiseName = new Promise(resolve => {
event.on('anyEvent1', function(name) {
accountInfo.name = name;
resolve(name);
});
});
let promiseAddress = new Promise(resolve => {
event.on('anyEvent2', function(address) {
accountInfo.address = address;
resolve(address);
});
});
Promise.all([promiseName, promiseAddress]).then((res) => {
console.log(res, accountInfo);
});
}
checkAccountInfo();
Виртуальный выделенный сервер (VDS) становится отличным выбором
Ajax запросы отрабатывают верно: получение статуса команды, удаление команды, постановка в очередьНе могу решить проблему, при клике осуществляет...
Я только начинаю изучать JS, возникла проблема, есть рабочий код, но сильно громоздкий и большой, помогите его упростить или уменьшить
Можно ли создать на canvas библиотеке Konvajs (или на каком-то другом) blur эффект на фото при mousemove?
У меня есть функция которая берет строку и проверяет является ли она CSS функцией hslaCSS понимает разное написание этой функции — с тремя и четырьмя...