Я работаю над библиотекой JavaScript, которая обеспечивает, помимо прочего, отображение/уменьшение функций в последовательностях, которые могут выполняться асинхронно.
A полезная душа на GitHub предположила, что для Node.js я должен использовать process.nextTick, чтобы асинхронные итерации выполнялись так же быстро, как возможное. (В настоящее время библиотека использует setTimeout во всех средах, которые, как я понимаю, являются субоптимальными.) Я довольно неопытен, когда дело доходит до Node, поэтому я читал о том, как работает этот метод, и неясно, я ли это хороший выбор или нет.
В соответствии с ответом на другой вопрос о SO кажется, что в этом случае было бы разумнее использовать setImmediate, поскольку nextTick, по-видимому, скачет перед ожидающими события ввода-вывода, что кажется мне плохо.
Это, по-видимому, подтверждается некоторыми замечаниями в официальном объявлении Node v0.10.0:
В v0.10 обработчики
nextTickзапускаются сразу после каждого вызова из С++ в JavaScript. Это означает, что, если ваш код JavaScript вызываетprocess.nextTick, тогда обратный вызов срабатывает, как только код запускается до завершения, но перед возвратом в цикл событий.
Итак, я прав, и асинхронно повторяя последовательности, используя setImmediate? Или лучше был бы nextTick здесь? (В любом случае, ясное объяснение, почему было бы очень благодарно.)