Pregunta

Estoy usando el plug-in relativamente inmadura Joose Javascript ORM proyecto ( página ) a persistir objetos en un Appcelerator de titanio ( página de la empresa ) proyecto móvil. Desde su almacenamiento en el lado cliente, la aplicación tiene que comprobar para ver si la base de datos se inicia antes de arrancar el ORM, ya que inspecciona las tablas de datos para construir las clases.

Mi problema es que esta secuencia de operaciones (y si éste es así, otras cosas por la carretera) necesita una gran cantidad de devoluciones de llamada para completar. Tengo un montón de saltar en el código que no es evidente para un mantenedor y los resultados en algunos gráficos complejos de llamadas y otras cosas. Por lo tanto, hago estas preguntas:

  1. ¿Cómo inicializar una base de datos de forma asíncrona y rellenarla con los datos de semillas usando un ORM que necesita el esquema que es correcta para funcionar?
  2. ¿Tiene alguna estrategias o enlaces para la programación asincrónica / event driven generales y manteniendo el gráfico de llamadas simple y comprensible?
  3. ¿Tiene alguna sugerencia para Javascript ORMs / sistemas de objetos meta que funcionan con HTML 5 como un motor de almacenamiento y son de esperar marco agnóstico?
  4. ¿Soy sólo un gran Novato y debe ser capaz de resolver esto con facilidad?

Gracias amigos!

¿Fue útil?

Solución

Trate flow.js (https://github.com/willconant/flow-js).

Otros consejos

Tome un vistazo a NarrativeJS :

  

Narrativa JavaScript es una pequeña   extensión del lenguaje JavaScript   que permite capacidades de bloqueo para   devoluciones de llamada de eventos asíncronos. Esta   hace que un código asíncrono refrescante   legible y comprensible.

     

Con Narrativa JavaScript ir a buscar un documento mediante XmlHttp va desde el aspecto siguiente:

function handleResponse(responseText) {
    document.getElementById("myElem").innerHTML = responseText;
}
fetch("http://www.url.com/", handleResponse);
  

a esto:

document.getElementById("myElem").innerHTML = fetch->("http://www.url.com/");

Lástima que el proyecto ya no está activa: - (

dojo.Deferred () también parece aplicar una mónada asíncrono, aunque la sintaxis no es tan clara como NarrativeJS.

Ha habido algún trabajo en traer azúcar asíncrono a CoffeeScript , pero en última instancia que no fue aceptada .

RxJS es otro que se ocupa de esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top