store 的值是未定义的。colud 告诉我我做错了什么。我应该使用 Async 和 wait 还是 Promise ?var store = db.read(collectionName, (status, data) => { //database read function if (status) { names.listOfData = data; var send = names; console.log("send---->", send); // send value here is what I need to return. return send; // Getting required data for send. Problem here is returning it and storing it in store. } else { return null; } });console.log("商店-->", 商店);这里 store 的值是未定义的。没有适当的回报
1 回答
倚天杖
TA贡献1828条经验 获得超3个赞
您无法写入要存储的结果并在之后立即看到它,db.read因为db.read它不会等待回调完成,也不会从中返回数据作为返回值。
您应该将此调用包装到new Promise. 它可能看起来像这样:
var store = await (new Promise(resolve, reject) => {
db.read(collectionName, (status, data) => {
//database read function
if (status) {
names.listOfData = data;
var send = names;
console.log("send---->", send); // send value here is what I need to return.
resolve(send);
} else {
resolve(null);
}
});
});
请阅读有关异步函数的更多信息,async/await以及Promise如何将带有回调的函数转换为异步函数。
添加回答
举报
0/150
提交
取消