繁体   English   中英

JS-在匿名函数内部设置全局变量吗?

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

这是用于从SharePoint 2013中提取列表项的脚本的一部分。我试图测试两个不同的列表,这就是为什么我有两个不同的匿名函数的原因。 我似乎无法弄清楚如何在第一个函数中设置pLead变量以在第二个函数中使用。 它总是在第二个函数中执行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); }
        }); 
    });
});

命名函数是一个好主意,即使仅将其用于调试也是如此。 如果应该在第一个函数完成时调用第二个函数,则不需要pLead变量,只需命名第二个函数并从第一个函数的成功或完成处理程序中调用它即可。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM