Javascript JS-在匿名函数中设置全局变量?
这是用于从SharePoint 2013中提取列表项的脚本的一部分。我试图测试两个不同的列表,这就是为什么我有两个不同的匿名函数。我似乎不知道如何将第一个函数中的恳求变量设置为在第二个函数中使用。它总是在第二个函数中执行if语句,因为它认为字符串为空。为什么是这样?我似乎无法控制它,我在说:Javascript JS-在匿名函数中设置全局变量?,javascript,ajax,anonymous-function,Javascript,Ajax,Anonymous Function,这是用于从SharePoint 2013中提取列表项的脚本的一部分。我试图测试两个不同的列表,这就是为什么我有两个不同的匿名函数。我似乎不知道如何将第一个函数中的恳求变量设置为在第二个函数中使用。它总是在第二个函数中执行if语句,因为它认为字符串为空。为什么是这样?我似乎无法控制它,我在说: var pLead = ""; $(function() { $.ajax({ url: "__URL__", headers: {"Accept
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); }
});
});
});
给函数命名是个好主意,即使您只是在调试时使用它。如果第二个函数应该在第一个函数完成时调用,那么您不需要conced变量,只需命名第二个函数并从第一个函数的success或done处理程序调用它即可
function firstFunction() {
$.ajax({ ... }).done(secondFunction);
}
AJAX是异步的。你需要使用承诺、回扣或任何你想使用的伎俩。。。。并命名这些函数,并将它们放入源代码中,这样就可以立即看出这两个函数属于同一类。自由地添加评论,指出你正在做什么以及为什么。