Несколько проблем:
1) В reduceDirections
не происходит ничего асинхронного, и при этом он не возвращает обещание, поэтому нет смысла использовать await
для него.
2) Рекурсивная часть вашей функции не возвращает рекурсивный результат, поэтому измените:
} else {
reduceDirections(str)
}
на:
} else {
return reduceDirections(str)
}
Тогда, по крайней мере, вы можете надеяться получить полезную строку каквозвращаемое значение
3) Если вы действительно настаиваете на использовании await
для чего-то, что возвращается синхронно, то вы можете сохранить это, но это не нужно делать
return Promise.resolve(res)
... поскольку функция async
всегда все равно возвращает обещание. Просто сделайте
return res;
4) вы не ждете , которое обещает решить. Поэтому вам следует дождаться его разрешенного значения и использовать console.log
для , что . Измените:
console.log(start(["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"]))
на:
start(["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"]).then(console.log)
Но опять же, использование обещаний здесь бесполезно и только усложняет код. Вы не получаете никакого преимущества от этого.