2011-11-22 3 views

ответ

1

async - это библиотека, которая предоставляет методы, позволяющие контролировать поток вашей программы. Например: «Я хочу обрабатывать каждый элемент в массиве асинхронно и выполнять эту функцию после завершения всей обработки».

TameJS заставляет вас писать код, который не является JS, но преобразуется в JS. Цель состоит в том, чтобы сделать асинхронное программирование более простым в использовании.

Я лично использовал TameJS, и есть несколько проблем с ним:

  • Когда сообщение об ошибке, номер строки номер строки файла JS, а не файл Сомони, что вы написали. Ошибки отслеживания - это боль.
  • Могут быть ошибки, которые трудно отследить. Я помню, что была ошибка с return res.send(200), где запрос не отправлялся. Это уже исправлено, но у меня очень плохой вкус.

Теперь я использую async и нахожу, что он может сделать код очень легким для чтения и понимания.

В качестве окончательного предложения, возможно, вам стоит попробовать написать собственный код для управления потоком управления. Если вы новичок в JS, то это будет очень хороший опыт для изучения того, что делают эти библиотеки внутри. Даже если вы находитесь в хрусте времени, было бы лучше понять, что делают внешние библиотеки, чтобы вы могли наилучшим образом использовать их.

1

Они совершенно разные, хотя они пытаются решить примерно ту же проблему. В то время как async - очень классная библиотека управления потоками, которая дает вам некоторые вспомогательные функции для управления вашим асинхронным кодом, tamejs (похоже на streamlinejs, который я предпочитаю) кучу языковых дополнений для псевдосинхронного кода, который скомпилируется в асинхронный код.

+0

Что следует использовать? – user847495

+0

@ user847495: Зависит. Для логики низкого уровня дополнительный язык сверху кажется плохой идеей. Однако, если вы пишете кучу бизнес-логики, что-то вроде streamlinejs может быть правильным инструментом (по сути, это то, для чего он был создан). – thejh

Смежные вопросы