The problem is that the haveMeal is always executed after the watchYoutube, even though they have no dependency relationship and can be executed at the same time.
Removing await keyword is not an option because it will cause the inability to catch any error thrown by those two function call, and unhandled promise rejection is not what should occur.
There are some not-so-clean workaround, for example, wrap the async operations in functions that handled the exception seperately:
async () => { try { let [firstResult, secondResult] = awaitPromise.all([watchYoutube(), haveMeal()]); //Promise will be rejected if any of the watchYoutube(), haveMeal() is rejected } catch (e) { console.log(e.message); } }