Вам нужно будет промисифицировать функцию sleep вручную.
function timeout(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function sleep(fn, ...args) {
await timeout(3000);
return fn(...args);
}
Кстати, для замедления цикла вы, вероятно, не захотите использовать функцию sleep, которая принимает обратный вызов и откладывает его, как здесь:
while (goOn) {
// other code
var [parents] = await Promise.all([
fn(...args).then(
//code here
),
timeout(5000)
]);
// other code
}