You can also start a chain of then()
method calls via Promise.resolve()
and execute the synchronous code inside a callback:
function asyncFunc() { return Promise.resolve() .then(() => { doSomethingSync(); return doSomethingAsync(); }) .then(result => { ··· }); }
An alternative is to start the Promise chain via the Promise constructor:
function asyncFunc() { return new Promise((resolve, reject) => { doSomethingSync(); resolve(doSomethingAsync()); }) .then(result => { ··· }); }
This approach saves you a tick (the synchronous code is executed right away), but it makes your code less regular.