Обратный вызов base64-img не работает с лексическим ограничением? - PullRequest
0 голосов
/ 21 февраля 2019

Я не могу понять, почему обратный вызов не использует лексическую область видимости с javascript.Кто-нибудь может мне это объяснить?

заставляет ли эта библиотека помещать весь мой код в обратный вызов?https://www.npmjs.com/package/base64-img

Мой тестовый код:

Примечание: я не включил установочный код для запуска сервера и промежуточного программного обеспечения errorHandler, потому что я чувствовал, что это займет слишком много времени и будет чрезмерным на этомвопрос.

const base64Img = require('base64-img');

router.get('/url_to_base64', async (req, res, next) => {
  try {
    const url = 'https://i.imgur.com/6gMn1RD.png';
    let base64;
    base64Img.requestBase64(url, function (err, result, body) { // callback()
      console.log('BODY', body.slice(0, 30));
      base64 = body.slice(0, 30);
      console.log('base64_inside_cb', body.slice(0, 30));
    });
    console.log('base64_outside_cb', typeof base64);
    res.send({ message: 'success' });
  } catch (err) {
    next(err);
  }
});

ожидаемый вывод:

base64_outside_cb string
GET /tests/url_to_base64 200 8.599 ms - 21
BODY data:image/png;base64,iVBORw0K
base64_inside_cb data:image/png;base64,iVBORw0K

фактический вывод:

base64_outside_cb undefined
GET /tests/url_to_base64 200 8.599 ms - 21
BODY data:image/png;base64,iVBORw0K
base64_inside_cb data:image/png;base64,iVBORw0K

Кто-нибудь знает, как я могу захватить эту строку base64_outside_cb за пределами обратного вызова

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