我从SharePoint库检索电子邮件文档(* .eml文件)的列表。 当这个列表完成时,我遍历它,将一些文件访问数据放入一个数组数组中。在这个过程结束时,我有一系列的电子邮件文件名和其他访问数据。 我遍历这个列表,通过Ajax(jQuery)打开每个电子邮件文件。 当电子邮件内容已经返回给我(来自非Ajax解码例程)时,我将其发送出去处理。我期望从SharePoint jQuery应用获得顺序结果,但得到随机结果
该处理顺序依赖。我从访问数组中获取email1,然后将其发送给解码器,然后对其进行处理(实质上,将其写入列表中)。我遇到的问题是,尽管我发送了email1,然后发送了email2,然后发送了email3,但是我从解码器得到的内容就是返回的感觉。也许1,2,3,也许1,3,2,也许3,2,1。因为我很小心地确保按顺序处理电子邮件,所以我期望能够顺序地返回其内容。不。
$.each(arIDs, function(index, value) {
//the following statement orders perfectly
$("#results").append("<br>dealing with " + arIDs[index][2]);
var ajaxPromise = $.ajax({
type:"GET",
url:"GFSSEForm/" + arIDs[index][2],
dataType:"text"
}).done(function(data) {
decodeEmail(data); //sets global arValues
$("#results").append("<br>" + arValues); //not returned in order passed
});
.
.
.
任何想法?
进一步的测试表明,Ajax语句在执行前正在排队。不幸的是,他们的排队或他们的检索顺序不是一个严格的FIFO安排。 – 2013-03-15 12:38:00