Async: Использование AsyncFunction в качестве функции итератора приводит к тому, что итерация передается как неопределенная

Созданный на 26 сент. 2017  ·  4Комментарии  ·  Источник: caolan/async

Какую версию async вы используете?
2.5.0

В какой среде возникла проблема (версия узла / версия браузера)
Версия ОС: OS X 10.12.6
Версия узла: 8.4.0
Версия браузера: N / A

Что ты сделал?

// templateNames is an array of strings
async.map(templateNames, async (templateName, next) => {   
  let template;
  try {
    template = await utils.getFile(templateName);
  } catch(err) {
    next(err);
  }
...
// and so on

Чего вы ожидали?
next - итеративная функция

Каков был реальный результат?
next равно undefined


Я закончил тем, что просто использовал синтаксис .then().catch() для достижения своей цели, но все же хотел поделиться им, используя AsyncFunction ( ПРИМЕЧАНИЕ: это не определение async а родное AsyncFunction Object ) приводит к тому, что итерация ( next ) имеет тип undefined .

docs question

Самый полезный комментарий

async функции обрабатываются иначе, начиная с 2.3.0 - им не передается обратный вызов. Вместо этого просто верните значение (или обещание). Фактически, в вашем примере даже try / catch не требуется, потому что любые выданные ошибки будут перехвачены Async. Это должно немного упростить ваш код.

// templateNames is an array of strings
async.map(templateNames, async templateName => {   
  const template = await utils.getFile(templateName);
...
// and so on

AsyncFunction документы: http://caolan.github.io/async/global.html

Все 4 Комментарий

async функции обрабатываются иначе, начиная с 2.3.0 - им не передается обратный вызов. Вместо этого просто верните значение (или обещание). Фактически, в вашем примере даже try / catch не требуется, потому что любые выданные ошибки будут перехвачены Async. Это должно немного упростить ваш код.

// templateNames is an array of strings
async.map(templateNames, async templateName => {   
  const template = await utils.getFile(templateName);
...
// and so on

AsyncFunction документы: http://caolan.github.io/async/global.html

🤦‍♂️ Было бы разумно прочитать эту часть документов более четко. Спасибо.

Честно говоря, это описание не так очевидно на сайте документации ... 🙄 📜

Я вообще-то думаю, что это довольно ясно. Сначала я просмотрел документы и пропустил эту часть.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги