Я пытаюсь дождаться рекурсивного вызова метода в javascript.Это мой код для запуска рекурсивного метода:
(async function start() {
await writeText(htmlEditor, 0, time, '#editor');
await writeText(fileSystem, 0, time, '#fileSystem');
await console.log("Hello World");
}).call(this);
Это рекурсивный метод:
function writeText(message, index, interval, to) {
return new Promise(resolve => {
let pre;
if (index < message.length) {
pre = document.getElementById('editor');
pre.scrollTop = pre.scrollHeight;
writeChar(message[index++], to);
setTimeout( function () {
writeText(message, index, interval, to);
}, time);
}
})
}
Однако, когда я использую этот код, все методы в функции запуска вызываютсяв то же время.Я подозреваю, что это из-за рекурсивного вызова в функции writeText.
Как я могу ждать завершения всего рекурсивного стека?