【发布时间】:2019-02-16 17:09:21
【问题描述】:
我有一个解析html的函数,我想在它上面使用await,这样我就可以等到html解析加载完成。
这是我现在用来加载 Html 的内容:
function loadHTMLSource(urlSource){
xhttp = new XMLHttpRequest();
xhttp.open("GET", urlSource, false);
xhttp.send();
return xhttp.response;
}
然后我使用该函数并使用它执行此操作...
var page_html = loadHTMLSource(url);
parser = new DOMParser()
my_document = parser.parseFromString(page_html, "text/html");
search_str = await item[1];
search_attr_name = "data-style-name";
var all_styles = my_document.querySelectorAll("[data-style-name]");
我真的不知道为什么我在第 1 项之前放置了一个等待,或者它甚至没有做任何事情,但让我们继续前进..
item[1] 基本上是一个字符串值,它会在 html 中查找该字符串值..
除了似乎在我有时间查看页面之前就加载了 html 数据,甚至没有加载它..
所以我认为如果我将其更改为异步函数,它应该可以工作......
除了这不是 JSON 响应.. 那么我将如何使用 async 和 await 来做到这一点...?
感谢您的帮助谢谢..
【问题讨论】:
-
如果你想要 Ajax + Promises,请查看更新的 fetch api。
-
请注意,如果
item[1]是一些非承诺值search_str将是item[1]的任何值 -
@PatrickEvans 啊,我明白了。删除了我的评论。
-
"item[1] 基本上是一个字符串值,它在 html 中查找该字符串值" 您的代码都没有在 html 文本本身中搜索字符串.您正在将 html 解析为文档,然后查询包含名为
data-style-name的属性的元素。您是否打算尝试查找属性为data-style-name且具有特定值的元素? -
是的@PatrickEvans ,,,,,,,,
标签: javascript url asynchronous google-chrome-extension async-await