Avatar billede Mik2000 Professor
26. juli 2015 - 17:30 Der er 3 kommentarer og
1 løsning

Vent på function

Hej

Her er det jeg gerne vil gøre i et forenklet eksempel

Hvis jeg har en function

function minfunktion(var1, var2, var3) {
  // Laver noget her bl.a. et AJAX kald
  return true;
}

og jeg så har et for loop som looper gennem et array

var myStringArray = [1,5];
var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
    minfunktion(myStringArray[i], 1, 2);
}

Når den så kører, hvordan får jeg den så til at vente med at gå videre i for sætningen indtil funktionen har kørt færdig?

Har prøvet følgende (ud fra tanken om den så ventede) men det virker ikke
for (var i = 0; i < arrayLength; i++) {
    if(minfunktion(myStringArray[i], 1, 2)) {};
}

Dvs. funktionen skal være helt færdig inden den kører loopet videre?
Avatar billede moddi100 Seniormester
26. juli 2015 - 18:21 #1
Du laver en callback-funktion, som udføres når AJAX-kaldet er gennemført. Dvs. at du ikke skal have din løkke, men blot kalde AJAX-funktionen, som så kalder et callback, der laver et nyt AJAX-kald.

Giver det mening?
Avatar billede Mik2000 Professor
27. juli 2015 - 00:53 #2
Ikke helt 100%

Så har lige et par spørgsmål:
1: Hvis man i et callback lader den kalde funktionen igen, hvordan styrer man så den kun kører så mange gange som der er værdier i arrayet?

2: I funktionen
function minfunktion(var1, var2, var3) {
  // Laver noget her bl.a. et AJAX kald, MEN OGSÅ ANDRE TING
  return true;
}
sker der flere ting end blot et ajax kald, så hvordan laver man et callback på hele funktionen, så man ved alt er kørt før den går videre?
Avatar billede Mik2000 Professor
27. juli 2015 - 01:01 #3
Tænker 2eren måske bare kan løses ved at gøre følgende

function minfunktion(var1, var2, var3) {
  // Laver noget her bl.a. et AJAX kald, MEN OGSÅ ANDRE TING
 
  // Ved at lave et kald til funktionen igen
  minfunktion(var1, var2, var3)
}

Men 1eren ved jeg stadig ikke
1: Hvordan sørger jeg for den kører præcis det antal gange som der er værdier i arrayet (inkl. første kørsel)?

2: Hvordan får jeg var1 i funktionen til at blive værdien fra arrayet?
Avatar billede Mik2000 Professor
17. september 2015 - 12:51 #4
Lukker - desværre ingen løsning
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester