我们可以在不向事件发射器承诺的情况下结束传递给事件发射器的回调的异步函数吗?
没有 。
async/
await语法只是
then调用的糖,它依赖于promise。
async function bakeMeSomeBurgers () { let canIHave = await canIHazACheezBurger(); if (canIHave) console.log('Hehe, you can have...'); else console.log('NOPE'); // Here we create an await our promise: await new Promise((resolve, reject) => { // Here invoke our event emitter: let cook = new BurgerCooking('cheez'); // a normal event callback: cook.on('update', percent => { console.log(`The burger is ${percent}% done`); }); cook.on('end', resolve); // call resolve when its done cook.on('error', reject); // don't forget this }); console.log('I've finished the burger!'); if (canIHave) console.log('Here, take it :)'); else console.log('Too bad you can't have it >:)');}


