4

比較的未熟なJooseJavascriptORMプラグイン(プロジェクトページ)を使用して、Appcelerator Titanium(会社ページ)モバイルプロジェクトでオブジェクトを永続化します。これはクライアント側のストレージであるため、アプリケーションはDBテーブルを検査してクラスを構築するため、ORMを起動する前にデータベースが初期化されているかどうかを確認する必要があります。

私の問題は、この一連の操作(およびこれがこのようなものである場合は、他の操作)が完了するまでに多くのコールバックを必要とすることです。メンテナにはわからないコードを飛び回って、複雑なコールグラフなどを作成します。だから、私はこれらの質問をします:

  1. スキーマが正しく機能する必要があるORMを使用して、データベースを非同期的に初期化し、シードデータをデータに取り込むにはどうすればよいでしょうか。
  2. 非同期/イベント駆動型プログラミングとコールグラフをシンプルで理解しやすいものに保つための一般的な戦略やリンクはありますか?
  3. ストレージエンジンとしてHTML5で動作し、できればフレームワークに依存しないJavascript ORM /メタオブジェクトシステムについて何か提案はありますか?
  4. 私はただの初心者で、これを簡単に解決できるはずですか?

皆さん、ありがとう!

4

2 に答える 2

2

flow.js(https://github.com/willconant/flow-js)を試してください。

于 2010-11-28T02:40:12.070 に答える
1

NarrativeJSを見てください:

ナラティブJavaScriptは、JavaScript言語の小さな拡張機能であり、非同期イベントコールバックのブロック機能を有効にします。これにより、非同期コードが読みやすく、理解しやすくなります。

ナラティブJavaScriptを使用すると、XmlHttpを使用してドキュメントをフェッチすると、次のようになります。

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

これに:

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

残念ながら、プロジェクトはもうアクティブではありません:-(

dojo.Deferred()も非同期モナドを実装しているようですが、構文はNarrativeJSほど明確ではありません。

CoffeeScriptに非同期シュガーを導入する作業がいくつかありましたが、最終的には受け入れられませんでした

RxJSはこれを扱うもう1つのものです。

于 2010-03-16T22:56:15.027 に答える