为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

达令说 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如何将带有回调的函数转换为异步函数。


查看完整回答
反对 回复 2023-09-14
  • 1 回答
  • 0 关注
  • 44 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信