Псевдокод. Заполняем select-список option-ами:
foo: function() {
return new Promise((resolve, reject) => {
$.ajax({
// ....
success: function (data) {
if (data.length) {
for (var e in data) {
select.appendChild(option);
}
resolve(data);
}
},
error: function (xhr, textStatus, errorThrown) {
reject(textStatus);
}
});
});
},
клиентский код:
fool().then(result => {
console.log($('#my_select').find('options').length)
}).catch(reason => {
}).finally(() => {
console.log($('#my_select').find('options').length)
});
Я ожидаю, что промис выкинет resolve ТОЛЬКО тогда, когда будет исполнен код по заполнению списка, однако в консоли в обоих случаях показывается, что option's в #my_select = 0
Почему так?