Я пытаюсь загрузить внешний 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
в БД. Итак, мне нужно точное значение. Я также пытался дать отсрочку, но безуспешно. И в этом случае задержка вроде бы даже не работает. Он просто регистрирует сначала productname
, а затем product_name
.
setTimeout(()=>{
productname = findproduct(product);
console.log(productname);
},5000)
Что я делаю не так с этой функцией asyn c? Любая помощь будет принята с благодарностью.