@Axepec

Async в node.js, синхроный цикл eachOfSeries или выполнение только одной итерации?

Доброго времени суток, господа профессоры.
В ноде новичок, пытаюсь сделать синхронный цикл в ноде. Библиотека async.
После первой итерации висит. Пример:

res = [
  'textFile/file_1.txt'  # ООООЧень большой
  'textFile/file_2.txt'  # маленький
  'textFile/file_3.txt'  # ооочень маленький
  ]

funRead = (file, i) ->
  fs.readFile file, 'utf8', (err, contents) ->
    console.log i + ') i am read ->> ' + file

async.eachOfSeries res, ((item, i) ->
  funRead(item, i)
  ), ->
    console.log 'testCB'


результат: 0) i am read ->> textFile/file_1.txt

Колбек не выполняется.......

если использовать async.eachOf результат естественно вот такой:
1) i am read ->> textFile/file_2.txt
2) i am read ->> textFile/file_3.txt
0) i am read ->> textFile/file_1.txt

Колбек не выполняется.......

Смысл не в том что бы ноду застопить, а в том что бы не начинать новую итерацию, пока старая не закончит работать..... 3 день пошел безнадежных поисков решения....

Или вот такой вариант три функции, надо сделать последовательно:

async.series [
  funRead1 = () ->
    fs.readFile 'textFile/file_1.txt', 'utf8', (err, contents) ->
      console.log '1) i am read ->> textFile/file_1.txt'
  funRead2 = () ->
    fs.readFile 'textFile/file_2.txt', 'utf8', (err, contents) ->
      console.log '2) i am read ->> textFile/file_2.txt'
  funRead3 = () ->
    fs.readFile 'textFile/file_3.txt', 'utf8', (err, contents) ->
      console.log '3) i am read ->> textFile/file_3.txt'
], () ->
  console.log 'test CB'


Выдает: 1) i am read ->> textFile/file_1.txt
и закрывается.... не могу понять, ХЕЛП
  • Вопрос задан
  • 366 просмотров
Решения вопроса 1
dummyman
@dummyman
диссидент-схизматик
Бро, ну я не знаю что там тебя в res,

Но в func() однозначно нет ничего асинхронного, поэтому в конкретном примере ты можешь воспользоваться хоть циклом for
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы