gpt4 book ai didi

javascript - 异步数据库调用使函数无法工作

转载 作者:行者123 更新时间:2023-11-28 19:56:10 25 4
gpt4 key购买 nike

function getNextID(number){
var maxKey = 0;
number = typeof number !== 'undefined' ? number : 1;

db.from('contributions').select('id').list().done(function(records) {

records.forEach(function(item){
if (maxKey < item){
maxKey = item;
}
});

return(maxKey);

});

}

我正在使用 ydn-db

这是一个使用本地存储的类 - 它异步工作,而不是 AJAX!

我想做的是获取表上的下一个ID(但这实际上是不相关的部分)。

我遇到的问题是:

a) 我是个白痴,我的 maxKey 范围是错误的

b) 异步调用把一切搞乱了。

目前,该函数始终返回“未定义” - 但是,如果我将 return 替换为 console.log(maxKey); ,它就可以正常工作。

谁能告诉我如何修复这个函数以便正确调用它?

(这是一个示例函数,因此尽管任何用于查找下一个键的内置函数都会受到赞赏,但我确实需要知道如何从函数内返回异步项!)

我希望这是明确的 - 任何问题 - 开火!

最佳答案

function getNextID(number,callback){
var maxKey = 0;
number = typeof number !== 'undefined' ? number : 1;

db.from('contributions').select('id').list().done(function(records) {

records.forEach(function(item){
if (maxKey < item){
maxKey = item;
}
});

callback(maxKey);

});

}

然后在你的代码中

getNextID(number,function(maxKey){
// continue the code here.
});

由于您的代码是异步的,因此您无法从 getNextID 返回任何内容,只能返回一个 promise 或使用延续(回调)。

关于javascript - 异步数据库调用使函数无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22513148/

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