我有解析html标签的脚本。我需要找到一些元素并用另一个元素替换它们。其中一些人使用ajax请求。
我的代码是这样的:
function Parser(text) {
var container = $('<div></div>');
container.html(text).find('.internal_link');
var links = container.html(text).find('.internal_link');
for (var i = 0; i < links.length; i++) {
if ($(links[i]).hasClass('profile_link')) {
parseProfileLink(links[i]);
} else if ($(links[i]).hasClass('clan_link')) {
parseClanLink(links[i]);
}
}
return container.html();
}
所以,在“parseClanLink”里面我有一个ajax请求,当我返回时我没有收到新文本。我需要某种链接但是在那个循环中。
问候!
答案 0 :(得分:0)
你可以等到异步parseProfileLink使用async / await来完成。
async function Parser(text) {
var container = $('<div></div>');
container.html(text).find('.internal_link');
var links = container.html(text).find('.internal_link');
for (var i = 0; i < links.length; i++) {
if ($(links[i]).hasClass('profile_link')) {
await parseProfileLink(links[i]);
} else if ($(links[i]).hasClass('clan_link')) {
parseClanLink(links[i]);
}
}
return container.html();
}
parseClanLink() {
return Promise(); // your logic inside promise
}