побаловался в свое время генераторами для фронтенда. даже в продакшн сунул. и забыл про него. навсегда. сомнительной нужности вещь. ну а без промисов никуда
через секунду вернет 4
function getPromise() {
return new Promise((resolve,fail)=> {
// что либо асинхронное
setTimeout(()=>resolve(4),1e3)
})
}
getPromise().then((d)=>console.log(d))
кто то возразит что генераторами можно и нужно последовательно разруливать несколько асинхронных запросов. для этого есть Promise.all
Promise.all([
httpFactory.get(`reward/${idReward}/view`)
.then(d=> {
this.reward = d.data;
this.term = dictFactory.termsDelivery[this.reward.delivery_rules].name;
this.reward.date = handleDataFactory.getIntervalDate(this.reward.send_date_from,this.reward.send_date_to);
// осталось наград
// sell_count == 0 это бесконечность наград
this.amountRewD=this.reward.sell_count-(this.reward.collected_count || 0)
}),
httpFactory.getAuth()
.then(d=> {
// возвращает 'no' если нет регистрации или она устарела
// под логином возвращает число денег на счету начиная от 0
this.isAuth = d.data;//===false? false:d.data;
// если фронт под логинон а сервер нет, то
if (this.isAuth == 'no' && authFront) userFactory._reLogin(true);
})
]).then(d=> {
this.getAmountRewD()
});