[英]waiting for fetch results in javascript
I'm calling fetch a lot so I'm trying to make it a reusable function. 我经常调用fetch,因此我试图使其成为可重用的函数。
async function getXML(url) {
const result = await fetch(url);
const xml = await result.text().then(( str ) => {
return new DOMParser().parseFromString(str, 'application/xml');
});
log(xml); //logs fine
}
I call it from var xml = getXML(url).then( work_with_setup_xml(xml) );
我从
var xml = getXML(url).then( work_with_setup_xml(xml) );
调用它var xml = getXML(url).then( work_with_setup_xml(xml) );
The function 'work_with_setup_xml' starts without data. 函数“ work_with_setup_xml”开始时没有数据。 How far off course am I?
我走多远?
This should do it: 应该这样做:
async function getXML(url) {
const result = await fetch(url);
const str = await result.text();
return new DOMParser().parseFromString(str, 'application/xml');
}
After fixing the return
statement in getXML
(as suggested in the other comments), your call is wrong. 在
getXML
修复return
语句后(如其他注释所建议),您的调用是错误的。 It should be either 应该是
getXML(url).then(work_with_setup_xml);
or 要么
getXML(url).then(function(xml) { work_with_setup_xml(xml) });
or 要么
var xml = await getXML(url);
work_with_setup_xml(xml);
So how about returning the data for a change? 那么,如何返回更改数据呢?
async function getXML(url) {
const result = await fetch(url);
return await result.text().then(( str ) => {
return new DOMParser().parseFromString(str, 'application/xml');
});
}
And actually using it: 并实际使用它:
let xml = getXML(url).then(xml => work_with_setup_xml(xml));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.