【发布时间】:2017-07-28 05:41:53
【问题描述】:
我在 React Native App 中工作,只是尝试执行这段代码
fetch('https://ad13.adfarm1.adition.com/banner?sid=3915124&wpt=X.xml')
.then((response) => response.text())
.then((responseJson) => {
console.log("WorkingTillHere",responseJson)
xml_Img = new XMLParser().parseFromString(responseJson); // Assume xmlText contains the example XML
console.log("ParserVideo,",xml_Img);
}) .catch((error) => {
console.log("ParserEx",error);
});
我可以在控制台窗口中看到
在这里工作
但它没有执行 XMLParser().parseFromString(responseJson); 并且正在获取控制台日志
ParserEx TypeError: 无法设置未定义的属性“值”
同样的代码在这个 URL 链接 fetch('http://teststream.airtango.de/theo/vast.xml') 上工作得很好
【问题讨论】:
-
我认为你应该调用一个异步来从http请求中获取数据,尝试添加“await fetch”并在你的函数前面添加异步
-
@GaneshCauda - 为什么?
.then链在适当的时候被调用 -
我可以在原始 XML 中看到的唯一区别是它工作的位置
<![CDATA[和]]>在各自的行中 - 而在失败的数据中你在一行中有<Error><![CDATA[ ... blah blah blah ...]]></Error>- XMLParser 是什么?是this one吗? -
所有的链都会被调用,但是如果你不使用异步,你的响应中将没有数据。您可以尝试使用几种方法来处理异步函数,使用 async/await、promise 或回调,但如果想要一个简单的方法,只需使用 async 和 await。你可以在这里找到如何写它:facebook.github.io/react-native/docs/network.html
-
不...是
<?xml version="1.0" encoding="UTF-8"?>抛出它
标签: javascript xml react-native xml-parsing