gpt4 book ai didi

javascript - 遍历数组不按顺序做事?

转载 作者:行者123 更新时间:2023-11-28 04:12:52 25 4
gpt4 key购买 nike

下面的代码在运行时可以正常工作,但似乎没有按顺序附加帖子(有时 post_2 第一,post_4 第二):

var posts = [
"post_1.md",
"post_2.md",
"post_3.md",
"post_4.md",
"post_5.md",
"post_6.md",
"post_7.md"];

for (var i in posts) {
$.ajax({
url: "posts/" + posts[i],
context: document.body,
success: function (mdText) {
var converter = new Showdown.converter();
var htmlText = converter.makeHtml(mdText);
$("body").append(htmlText);
}
});
}

它遍历数组中的元素,并为每个元素下载一个 Markdown 文档,将其转换为 HTML,并将其附加到正文中。我尝试了一个简单的 for 循环以及 Underscore 的 _.each() 函数。这三个都有相同的结果,运行时它们不会按顺序附加文档(因此当我单击刷新时,标题的顺序不同)。知道为什么会发生这种情况以及解决方法吗?

最佳答案

$.ajax 是一个异步函数,这意味着您的所有 $.async 函数都是并行发生的,并且将按照它们完成的顺序追加到正文中(这显然会根据他们正在获取的文档的大小和一般网络延迟而有所不同。

您不妨查看 async.js库,它将允许您并行运行 AJAX 调用,然后在所有调用完成时执行回调。您需要使用 async.parallel 函数,它将每个 AJAX 调用的结果作为数组传递给最终回调。

关于javascript - 遍历数组不按顺序做事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com