これは、SharePoint 2013からリストアイテムをプルするために使用されるスクリプトの一部です。私は2つの異なるリストをテストしようとしています。 pLead変数を第1の関数で第2の関数で使用するように設定する方法を理解できないようです。文字列が空であると考えるので、2番目の関数では常にifステートメントを実行します。なぜそれはこのようなものですか?JS - 無名関数の中にグローバル変数を設定しますか?
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); }
});
});
});
AJAXは非同期です。約束を使う必要があります。 – Hoyen
またはコールバック、または使用したいトリックです。 –