从异步函数返回数据

时间:2019-12-09 05:31:30

标签: javascript node.js mongodb asynchronous async-await

我正在尝试从以下函数返回数据:

function getStatus(sender_psid) {
MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("myproject");
  var myquery = { psid: sender_psid };
  dbo.collection("fmtest").findOne(myquery, function(err, result) {
    console.log("Results:" +result.userStatus);
    var result = result.userStatus;
    db.close();
    return result;
  });
});
};

我的目标是使用像$ x = getStatus(sender_psid)这样的函数(以便我可以在程序的其余部分中使用该函数的返回值),但不是工作。 我已经发现异步存在一些问题,但是我无法解决。 例如,我已经这样尝试过:

async () => {var x= getStatus(sender_psid);
return status;
};
console.log("Worked! ", x);

有人可以帮我吗?

编辑: 我已经看到了一个大问题:How do I return the response from an asynchronous call?,但这与ajax有关,并未直接回答我的问题, 我也见过这个(Mongodb find doesn't return array),它也不能回答我的问题,因为这与返回结果并将其传递给变量无关。

0 个答案:

没有答案