Функция ниже рекурсивно распечатывает закладки Chrome в папке. Как я могу изменить приведенную ниже функцию для вызова другой функции после обработки последнего рекурсивного цикла? chrome.bookmarks.getChildren ()
является асинхронным, что затрудняет определение того, когда функция завершила обработку всего.
Спасибо.
for (var i = 0; i < foldersArray.length; i++) {
// The loop makes several calls with different folder IDs.
printBookmarks(foldersArray[i]);
}
// I'd like any code here to be run only after the above has
//finished processing
function printBookmarks(id) {
chrome.bookmarks.getChildren(id, function(children) {
children.forEach(function(bookmark) {
console.debug(bookmark.title);
printBookmarks(bookmark.id);
});
});
}
РЕДАКТИРОВАТЬ: Извините, я не думаю, что я ясно понял исходный пример кода. Я обновил код, чтобы показать проблему с асинхронной функцией, вызывая ее несколько раз. Я бы хотел, чтобы любой код после вызовов функции printBookmarks
ожидал завершения обработки всеми функциями printBookmarks
.