gpt4 book ai didi

JavaScript 从内部函数返回值

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:05:15 25 4
gpt4 key购买 nike

我正在尝试从内部函数中获取值。为什么域总是返回未定义?我认为这是因为 webSQL 是异步执行的。在我继续之前,我需要在程序中此时获取域的值。我认为这是一个关闭问题,但也许我的方法是错误的?

var domain = selectDomain();

function selectDomain()
{
var sql,
i;

sql = "SELECT * FROM Domain";

database.open();
database.query(sql, [], function(tx, result)
{
for (i = 0; i < result.rows.length; i++)
{
var domain = result.rows.item(i);
return domain.Domain;
}
});
}

最佳答案

你说得对,查询是异步执行的,这里的 return 语句是行不通的。相反,在查询的回调函数中,调用另一个将结果作为参数传递的函数,然后从那里继续您的程序。

编辑:我刚刚注意到您循环遍历了结果,这意味着 domain 将被每一行连续覆盖,并且总是以最后一个的值结束项目。

var domain;
selectDomain();

function selectDomain() {
...

database.query(sql, [], function(tx, result)
{
for (i = 0; i < result.rows.length; i++)
{
handleResult(result.rows.item(i));
}
});
}

function handleResult(result) {
domain = result.Domain;
// Continue
}

关于JavaScript 从内部函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122496/

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