обещания упражнений в JS - PullRequest
0 голосов
/ 19 февраля 2019

Я тренируюсь на обещаниях JS с помощью генератора коротких URL-адресов, и я застрял.Консоль отправляет меня обратно: Результат: не определено.Мне нужна помощь, пожалуйста!

import express from 'express';
import shortUrl from 'node-url-shortener';
const router = express.Router();

router.get('/', (req, res) => {
  res.render('postUrl');
})

router.post('/test', (req, res) => {

  const getShortUrl = () => {
    return new Promise((resolve, reject) => {
      const test = shortUrl.short('https://google.com', (err, url) => {
          return url;
      });
      resolve(test)
    })
  }

  getShortUrl()
    .then((result) => {
      console.log('Resultat : ' + result)
    })
    .catch((err) => {
      console.log('Error : ' + err)
    })

  res.render('getShortUrl');
})

export { router }

1 Ответ

0 голосов
/ 19 февраля 2019

Просто переместите result(test) внутрь обратного вызова.Как это:

import express from 'express';
import shortUrl from 'node-url-shortener';
const router = express.Router();

router.get('/', (req, res) => {
  res.render('postUrl');
})

router.post('/test', (req, res) => {

  const getShortUrl = () => {
    return new Promise((resolve, reject) => {
      shortUrl.short('https://google.com', (err, url) => {
          resolve(url);
      });
      
    })
  }

  getShortUrl()
    .then((result) => {
      console.log('Resultat : ' + result)
    })
    .catch((err) => {
      console.log('Error : ' + err)
    })

  res.render('getShortUrl');
})

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