gpt4 book ai didi

javascript - 直接对数据库操作执行等待将给出未定义的结果

转载 作者:行者123 更新时间:2023-12-01 03:20:56 26 4
gpt4 key购买 nike

我直接对异步数据库操作进行等待。但结果却是一无所获。这是我的代码。

var channel_arr = await db.find({type:'pricing'},{channel_name:1},function(err,docs){
if(err) {
reject(err)
return;
}
var c = []
for(var o of docs){
c.push(o['channel_name'])
}
return c;
})
alert(channel_arr)

如何解决这个问题?

最佳答案

您不应该提供回调。您不需要周围的 Promise,而是添加异步函数。大概代码:

async function someJob() {
try {
const channel_arr = await db.find({type:'pricing'},{channel_name:1});
const c = [];
for (const o of channel_arr) {
c.push(o['channel_name']);
}
return c;
} catch(e) {
console.error(e);
return [];
}
}

更新:相同的代码,但使用 Array.map:

async function someJob() {
try {
const docs = await db.find({type:'pricing'},{channel_name:1});
return docs.map(el => el.channel_name);
} catch(e) {
console.error(e);
return [];
}
}

关于javascript - 直接对数据库操作执行等待将给出未定义的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45208569/

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