Асинхронни операции със синхронен интерфейс за Javascript

Така че напоследък чувам МНОГО за node.js. Поддръжниците изглежда го рекламират като второ идване на Христос. Това събуди интереса ми и реших да прочета.

Попаднах на множество източници с референтни числа и очевидно върши отлична работа за обработка на голям брой едновременни заявки. Но начинът на „обратно извикване“ за писане на код просто ми се струва много „неестествен“. Малко проучване ме доведе до Eventlet, който ми позволява да правя асинхронни операции, докато пиша код, който много прилича на синхронен (следователно ме прави по-продуктивен).

Но Node.js изглежда е много по-мощен от Eventlet (http://codescience.wordpress.com/2011/09/05/non-blocking-io-node-js-and-pythons-eventlet). Предполагам, че е заради V8 JS двигателя. Има ли предложение за Java/Javascript, което ми позволява да извършвам асинхронни операции, докато пиша синхронен код, като по този начин ми дава най-доброто от двата свята - производителност на разработчиците заедно с производителността на JVM/V8?


person tldr    schedule 07.06.2012    source източник


Отговори (3)


Поддръжката на Node.js може да поддържа синтаксис async - await, който ви позволява да изпълнявате асинхронни операции със синхронно изглеждащ код

Виж това:

https://github.com/koush/node/wiki/%22async%22-support-in-node.js

person Benjamin Gruenbaum    schedule 07.06.2012
comment
Може да си струва да се отбележи, че официалната версия на Node.js не поддържа това; това е разклонение на проекта, който прилага предложените промени, и е няколко месеца остарял. - person Michelle Tilley; 08.06.2012
comment
Благодаря, добре е да знам! Някакви други предложения? Не е задължително да е node.js плъгин/разширение. Всичко, което работи на JVM/V8. - person tldr; 08.06.2012

Има няколко проекта, целящи да внесат този вид стил в Node.js. IcedCoffeeScript, разклонение на CoffeeScript е един пример (но изисква да напишете CoffeeScript). Друг е node-fibers.

Лично аз експериментирах с IcedCoffeeScript (тъй като вече използвам CoffeeScript) и изглежда, че работи доста добре (вижте моя преди -и-след пример), но отстраняването на грешки в CoffeeScript е малко трудно, въпреки че следващата версия на CoffeeScript трябва да има поддръжка за картографиране на източника, което се надяваме да улесни това.

person Michelle Tilley    schedule 07.06.2012

Благодаря ви, но кодът ми е от страна на сървъра. Просто исках хубави бутони и мисля, че кодът е направен от jquery ui. Така че, когато правя .buttons, функциите са свързани с моя бутон, но не знам какви са функциите, така че не знам как да ги извикам по този начин
person ajuhos    schedule 03.07.2012