La función siguiente imprime marcadores de Chrome en una carpeta recursivamente. ¿Cómo podría alterar la función siguiente para llamar a otra función después de procesar el ciclo recursivo final? chrome.bookmarks.getChildren()
es asíncrono lo que hace que sea difícil saber cuándo la función está procesando todo.Devolución de llamada después del final de la función recursiva asincrónica
Gracias.
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);
});
});
}
EDIT: Lo siento, no creo que haya sido claro en el ejemplo de código inicial. He actualizado el código para mostrar el problema que estoy teniendo con la función asincrónica llamando a la función varias veces. Me gustaría que cualquier código después de la función printBookmarks
llame para esperar a que todas las funciones printBookmarks
finalicen el procesamiento.
Lo siento, no creo que haya sido claro con mi código de ejemplo. Tu código funciona para una sola llamada para imprimir marcadores, pero me gustaría saber cuándo se terminan todas las llamadas a printBookmarks (realizadas de forma asíncrona). He actualizado mi código. Gracias. – usertest