在一个匿名函数中设置一个全局变量

JS - Set a global variable, inside of an anonymous function?

本文关键字:一个 设置 全局变量 函数      更新时间:2023-09-26

这是用于从SharePoint 2013中拉出列表项的脚本的一部分。我试着测试两个不同的列表,这就是为什么我有两个不同的匿名函数。我似乎无法弄清楚如何在第一个函数中设置恳求变量以在第二个函数中使用。它总是在第二个函数中执行if语句,因为它认为字符串是空的。为什么会这样?我似乎无法理解它,我在说这个:

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); }
        }); 
    });
});

给函数命名是个好主意,即使你只是为了调试而使用它。如果第二个函数应该在第一个函数完成时被调用,则不需要使用恳求变量,只需命名第二个函数并从第一个函数的成功或完成处理程序调用它。

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