Можно еще так:
function timeout(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
var [result] = await Promise.all([
doStuff,
timeout(3000)
]);
Но имхо здесь это лишнее и это нужно для таймаута (ограничения промиса по времени). Здесь же другой случай