gpt4 book ai didi

javascript - 如何从 React Native 中的异步 JS 函数返回变量值

转载 作者:行者123 更新时间:2023-12-04 00:16:44 26 4
gpt4 key购买 nike

我正在尝试将外部 URL 加载到 React Native 应用程序中,然后提取 <title>从它的元素。我不想使用 WebView因为这应该在后台发生。我正在使用 dom-parser库来实现它。但是,我无法返回 product_name 的值来自 findproduct() .运行函数时,它会记录 product_name 的正确值在控制台中,表明代码工作正常。但是当我想取 product_name 的值时,问题就出现了。外面findproduct()并在别处使用它。

async function findproduct(){
var DomParser = require('dom-parser');
var parser = new DomParser()
const html = (await (await fetch(product)).text()); // html as text
var dom = parser.parseFromString(html);
const product_name = dom.getElementsByTagName("TITLE")[0].innerHTML;
console.log("name="+product_name); //this logs correctly
return product_name;
}
productname = findproduct(); //this logs something else
console.log(productname);

在这里,productname未定义或类似于 {"_U": 0, "_V": 0, "_W": null, "_X": null} .我四处搜索,但我只知道还有其他方法可以从 async function 返回变量。 .没有其他的。我需要插入 productname进入数据库。所以,我需要确切的值(value)。我也试图延迟但没有收获。在这种情况下,延迟似乎甚至不起作用。它只记录 productname先记录 product_name .

setTimeout(()=>{
productname = findproduct(product);
console.log(productname);
},5000)

我在那个异步函数上做错了什么?任何帮助将不胜感激。

最佳答案

async 函数返回 Promise 而不是实际值。因此,要获得实际值,您必须这样做。

findproduct().then((productname) => console.log(productname))

如果你想做某事,你可以这样使用它......

findproduct().then((productname) => {
//do what you want to do with productname
})

关于javascript - 如何从 React Native 中的异步 JS 函数返回变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63212838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com