Как можно создать синтаксический сахар, чтобы скрыть некоторые сложности, которые являются .then?
Учитывая код ниже:
const Fridge = {
async openDoor() {
const myCake = new Promise(resolve => {setTimeout(()=> {
console.log('door opened')
resolve (Object.create(Cake))
}, 2000)});
await myCake
return myCake
}
}
const Cake= {
eatCake(){ console.log ( 'yummy now I can eat my cake' ) }
}
const myFridge = Object.create(Fridge)
Обычно доступен через многословный:
myFridge.openDoor().then(myCake=>{
myCake.eatCake()
... other code here .....
}) // complicated
Может ли быть создан некоторый сахар вместо:
myFridge.openDoor().eatCake() //simple to understand .then implied
или далее вместо:
myObject.myPromise.then(res=>{
let x = res
... do stuff with x
});
вместо
let x = myObject.myPromise.res
... so stuff with x
Все, что возвращаетсяиз асинхронной функции следует использовать для последующего вызова.И весь последующий код предполагается в .then.Закрытие .then определяется концом включающей функции (аналогично тому, как в настоящее время работает ожидание).