達令說
2023-09-14 20:46:44
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
提交
取消