Javascript 如何在没有巨大回调链的情况下使用异步ORM?

Javascript 如何在没有巨大回调链的情况下使用异步ORM?,javascript,orm,asynchronous,titanium,joose,Javascript,Orm,Asynchronous,Titanium,Joose,我正在使用相对不成熟的JooseJavaScriptORM插件()来持久化Appcelerator()移动项目中的对象。由于它是客户端存储,应用程序必须在启动ORM之前检查数据库是否初始化,因为它检查DB表以构造类 我的问题是,这一系列操作(如果这一个是这样的,接下来的其他事情)需要大量回调才能完成。我在代码中有很多跳跃,这对于维护人员来说并不明显,并且会导致一些复杂的调用图等等。因此,我提出以下问题: 如何使用需要正确运行模式的ORM异步初始化数据库并用种子数据填充它 对于异步/事件驱动编程和

我正在使用相对不成熟的JooseJavaScriptORM插件()来持久化Appcelerator()移动项目中的对象。由于它是客户端存储,应用程序必须在启动ORM之前检查数据库是否初始化,因为它检查DB表以构造类

我的问题是,这一系列操作(如果这一个是这样的,接下来的其他事情)需要大量回调才能完成。我在代码中有很多跳跃,这对于维护人员来说并不明显,并且会导致一些复杂的调用图等等。因此,我提出以下问题:

  • 如何使用需要正确运行模式的ORM异步初始化数据库并用种子数据填充它
  • 对于异步/事件驱动编程和保持调用图简单易懂,您是否有任何通用策略或链接
  • 对于使用HTML5作为存储引擎的Javascript ORMs/元对象系统,您有什么建议吗
  • 我只是一个大新手,应该能够轻松解决这个问题吗
  • 谢谢大家

    看看:

    叙述性JavaScript是一个小问题 JavaScript语言的扩展 这就为 异步事件回调。这 使异步代码刷新 可读性和可理解性

    对于使用XmlHttp获取文档的叙述式JavaScript,其外观如下所示:

    为此:

    太糟糕了,项目不再处于活动状态:-(

    似乎还实现了一个异步monad,尽管语法没有叙事js那么清晰

    是的,但最终

    RxJS是另一个处理这个问题的工具。

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

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