延迟jQuery Ajax调用仅显示函数内部的数据

延迟jQuery Ajax调用仅显示函数内部的数据,jquery,ajax,promise,deferred,Jquery,Ajax,Promise,Deferred,我尝试了几种方法,使用.done和.then,我得到了相同的结果-数据似乎很好地填充了数组(我可以在“pushTeamMembers”中对数组进行console.log),但是当我尝试在主流中查看它时,数组是空的 我认为这可能是某种范围问题,但如果我在最后一个console.log之前稍微停顿一下(设置间隔),效果会很好——这似乎意味着程序在实际提取数据之前显示了数据。谢谢 var siteurl=\u spPageContextInfo.webAbsoluteUrl; var teamMemb

我尝试了几种方法,使用.done和.then,我得到了相同的结果-数据似乎很好地填充了数组(我可以在“pushTeamMembers”中对数组进行console.log),但是当我尝试在主流中查看它时,数组是空的

我认为这可能是某种范围问题,但如果我在最后一个console.log之前稍微停顿一下(设置间隔),效果会很好——这似乎意味着程序在实际提取数据之前显示了数据。谢谢

var siteurl=\u spPageContextInfo.webAbsoluteUrl;
var teamMembers=[];
//**********Ajax查询
var teamListData=$.ajax({
键入:“get”,
url:siteurl+“/”api/web/lists/getbytitle(“团队”)/items“,
标题:{“接受”:“应用程序/json;odata=verbose”}
});
//*********Ajax查询延迟“.then”处理程序
teamListData.then(函数(值){
$。每个(团队列表数据、功能(i、项){
var thisNameId=teamListData[i].NameId;
var workStream=teamListData[i]。标题;
var成员={id:thisNameId,workstream:workstream};
团队成员(成员);
});
});
//*********推到阵列上
功能pushTeamMembers(成员)
{
团队成员。推送(成员);
//**********这表明阵列已填充。
console.log(团队成员);
}
//**********这表明数组是空的-除非我放置一个
//此处稍有停顿(设置间隔)。
console.log(团队成员);

更新:我想我没有正确地考虑这个问题。我只需要在.done函数中包含数据。在.done函数完成之前,程序将继续执行第二个console.log,因此尝试在延迟上下文的上下文之外访问程序流中的数据会导致延迟。我只需要将函数链接到延迟上下文中,而不是返回到程序流中。我想这是显而易见的,我很想删除我的帖子,但也许这会对像我这样的新手有所帮助