2016-06-27 5 views
1

Dies ist ein Teil des Skripts zum Ziehen von Listenelementen aus SharePoint 2013. Ich versuche, zwei verschiedene Listen zu testen, weshalb ich zwei verschiedene anonyme Funktionen habe. Ich kann nicht herausfinden, wie man die pLead Variable in der ersten Funktion einstellt, um in der zweiten Funktion zu verwenden. Es macht immer die if-Anweisung in der zweiten Funktion, weil es denkt, dass die Zeichenfolge leer ist. Warum ist es so? Ich kann meinen Kopf herum scheint es, ich rede darüber:JS - Stellen Sie eine globale Variable innerhalb einer anonymen Funktion ein?

var pLead = ""; 

$(function() { 

    $.ajax({ 
      url: "__URL__", 
      headers: {"Accept": "application/json;odata=verbose"}, 
      type: "GET", 
      cache: false,  

    }).success(function (data) { 
     $.each(data.d.results, function(key, value) { 
     pLead = "TESSTT"; 
     }); 
    }); 
}); 

$(function() { 

    $.ajax({ 
      //DTIM Projects page 
      url: "__URL__", 
      headers: {"Accept": "application/json;odata=verbose"}, 
      type: "GET", 
      cache: false,  

    }).success(function (data) { 
     $.each(data.d.results, function(key, value) { 
      if (pLead.length === 0) { $("#ProjectLead").html(value.PL); } 
      else { $("#ProjectLead").html(pLead); } 
     }); 
    }); 
}); 
+2

AJAX ist asynchron. Sie müssen Versprechungen verwenden. – Hoyen

+1

Oder Rückrufe, oder was auch immer Trick Sie verwenden möchten. –

Antwort

1

Es ist eine gute Idee, um Ihre Funktionen zu nennen, auch wenn Sie es nur für die Fehlersuche verwenden. Wenn die zweite Funktion aufgerufen werden soll, wenn die erste Funktion abgeschlossen ist, brauchen Sie die pLead-Variable nicht, benennen Sie einfach Ihre zweite Funktion und rufen Sie sie vom erfolgreichen oder abgeschlossenen Handler der ersten Funktion ab.

function firstFunction() { 
    $.ajax({ ... }).done(secondFunction); 
} 
+0

... und * Name * diese Funktionen, und legen Sie sie in den Quellcode, so dass es * sofort offensichtlich * ist, dass die beiden zusammen gehören. Fügen Sie Kommentare hinzu, um aufzuzeigen, was Sie tun und warum. –

Verwandte Themen