Функция, возвращающая пустое [объект Promise] - PullRequest
0 голосов
/ 14 января 2020

Я думаю, что эта проблема связана с asyn c, но я не могу переслать логическое значение, которое оно просто отправляет как [объект Promise], которое пусто, когда я JSON .stringify его на передней панели конец

const express = require("express");
var router = express.Router();
var ObjectId = require("mongoose").Types.ObjectId;
const mongoose = require("mongoose");

var crypto = require("crypto");

var { User } = require("../models/users");

router.get("/", (req, res) => {

  // This logs "[object Promise] Please see here"
  console.log(go().then(function(result) {
    return result
  }) + ' Please see here');

  // This logs true
  go().then(function(result) {
    console.log(result)
  });

  // This returns [object Promise] to front end which is empty
  return res.send((go().then(function(result) {
    return result
  })));

  async function go() {
   doesUserExist = await User.exists({ email: req.query.email });
   return doesUserExist;
  }

});

module.exports = router;

1 Ответ

0 голосов
/ 14 января 2020

Поскольку go является асинхронной c функцией, я считаю, что вам нужно ждать, когда она вызывается. Что-то вроде этого:

const express = require("express");
var router = express.Router();
var ObjectId = require("mongoose").Types.ObjectId;
const mongoose = require("mongoose");

var crypto = require("crypto");

var { User } = require("../models/users");

router.get("/", async (req, res) => {

  // This logs "[object Promise] Please see here"
  console.log(await go().then(function(result) {
    return result
  }) + ' Please see here');

  // This logs true
  go().then(function(result) {
    console.log(result)
  });

  // This returns [object Promise] to front end which is empty
  return res.send((go().then(function(result) {
    return result
  })));

  async function go() {
   doesUserExist = await User.exists({ email: req.query.email });
   return doesUserExist;
  }

});

module.exports = router;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...