当前位置: 代码迷 >> JavaScript >> 等待在javascript中获取结果
  详细解决方案

等待在javascript中获取结果

热度:109   发布时间:2023-06-13 12:17:23.0

我经常调用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
}

我从var xml = getXML(url).then( work_with_setup_xml(xml) );调用它var xml = getXML(url).then( work_with_setup_xml(xml) );

函数“ work_with_setup_xml”开始时没有数据。 我走多远?

应该这样做:

async function getXML(url) {
  const result = await fetch(url);
  const str = await result.text();
  return new DOMParser().parseFromString(str, 'application/xml');
}

getXML修复return语句后(如其他注释所建议),您的调用是错误的。 应该是

getXML(url).then(work_with_setup_xml);

要么

getXML(url).then(function(xml) { work_with_setup_xml(xml) });

要么

var xml = await getXML(url);
work_with_setup_xml(xml);

那么,如何返回更改数据呢?

async function getXML(url) {
    const result = await fetch(url);

    return await result.text().then(( str ) => {
        return new DOMParser().parseFromString(str, 'application/xml');
    });
}

并实际使用它:

let xml = getXML(url).then(xml => work_with_setup_xml(xml));
  相关解决方案