返回值未定义。可以告诉我应该做什么来修复它吗?

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 的值是未定义的。没有适当的回报


达令说
浏览 72回答 1
1回答

倚天杖

您无法写入要存储的结果并在之后立即看到它,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如何将带有回调的函数转换为异步函数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript