AngularJs $ http-запрос остается в ожидании и не возвращает значение из базы данных - PullRequest
0 голосов
/ 17 февраля 2020

В настоящее время я пишу маршрут, который позволяет мне получать информацию из хранимого в моей базе данных процесса. Я написал запрос в AngularJS и маршрут в NodeJS, но я только что получил ожидающий запрос в окне chrome Network Developer. Я вижу, что console.log в приложении NodeJs содержит данные, которые мне нужны, поэтому он получил их, но в журналах консоли ничего не возвращается в приложении AngularJS.

Вот код для приложения angularJS и приложения Node:

Anglaur JS:

checkForReplenishmentEmptyTrolley = async () => {
        LIBRIS.extensions.openLoadingModal();
        console.log('in checkForReplenishmentEmptyTrolley');
        try {
          const varPromise = await $http.get(`${LIBRIS.config.stockService}stockMovement/checkForUnattachedTrolley`)
            .then((response) => {
            console.log(response);
            // Request completed successfully
            }, (error) => {
            // Request error
            console.log(error);
            });
          console.log(varPromise.data);
          // 1. check that there are no ghost replenish - lines 1-15
          console.log('in try/catch');
          console.log('promise', varPromise);
        } catch (error) {
          console.log(error);
        }
      },

NodeJS code :

app.get(`${ROUTE}/attachTrolley`, async function(req, res){
  const newRequest = await DB.newRequest();
  console.log('we have made it to the route');
  try {
    console.log('we have made it to the Try/Catch route');
    newRequest.input();
   const record = await newRequest.execute('dbo.usp_STK_CheckForUnattachedTrolley');
    res.json(record)
    console.log(record, 'record');
  } catch (err){
    handleError(res, err);
    console.log(err);
  }
});

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Проблема в том, что вы делаете .then по ожидаемым обещаниям и ничего не возвращаете из этого. У вас есть два варианта здесь

  • Либо возвращайте ответ с этого момента, поэтому при попытке получить доступ к значению здесь console.log(varPromise.data); оно работает.

  • Или удалите .then alltogather, так как он не требуется, потому что вы ожидаете его любым способом.

В основном просто сделайте это

checkForReplenishmentEmptyTrolley = async () => {
  LIBRIS.extensions.openLoadingModal();
  console.log("in checkForReplenishmentEmptyTrolley");
  try {
    const varPromise = await $http.get(`${LIBRIS.config.stockService}stockMovement/checkForUnattachedTrolley`);
    console.log(varPromise.data);
    // 1. check that there are no ghost replenish - lines 1-15
    console.log("in try/catch");
    console.log("promise", varPromise);
  } catch (error) {
    console.log(error);
  }
};

Надеюсь, что это решит вашу проблему.

0 голосов
/ 17 февраля 2020

Решено! У меня не было возврата в моем маршруте!

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