8 recipes to master Promises in ECMAScript 2018