Tach!
Ich bin noch nicht ganz so fit, was Promises angeht, aber mit Callbacks innerhalb einer for-Schleife ging das eben auch nicht.
Ohne jetzt genau gelesen zu haben sind Asynchhrone Schleifen eingentlich einfach umzusetzen.
Deine Lösung ist in dem Fall nicht verwendbar. Dein Callback wird aufgerufen, wenn die Schleife abgearbeitet ist. In seinem Fall handelt es sich aber um Promises, also asynchrone ToDos. Das äußere Promise darf erst erfüllt werden, wenn die anderen Promises erfüllt sind. Bezogen auf deine Funktion darf das Callback erst aufgerufen werden, wenn alle asynchronen ToDos ihrerseits ihr Callback aufgerufen haben.
var i = 0, k = Object.keys( obj ), v = Object.values( obj ); function check ( b = false ) {
Die Bedeutung von i, k und v kann man sich denken, aber was ist die Aufgabe von b? Dem wird nie ein anderer Wert zugewiesen. Vermutlich hast du dessen Verwendung aus dem Beispiel rausgekürzt. Aber nicht sprechende Variablennamen sind schlecht fürs Verständnis. Wenn break nicht geht, weil es ein reserviertes Wort ist, dann gibt es noch ein paar Synonyme, beispielsweise cancel.
if ( callback !== undefined ) { callback(); }
undefined darf der Callback nicht sein, aber null, 42 oder "foo" sind ok?
dedlfix.