私はシングルページアプリを作成していて、クライアント側のデータアクセスレイヤーを作成することにしました。私の質問はそれの適切な設計を含みます。JSがコールバック中心であることは理解していますが、データ検索を行うためのより良い方法はないかと思います。現在のデータアクセス呼び出しがコールバックでどのようにフォーマットされているかの例を次に示します。
$interface.getDashboard = function (callback) {
callback({MyApplications:[]});
};
これが、あちこちでコールバックの必要性を排除するために私が向かっていることを考えていることです:
$interface.getApplications = function () {
var v = amplify.store("api.applications");
if (!v) {
v = [];
_get("/api/applications", null, function (results) {
amplify.store("api.applications", results, { expires: _cacheTimeOut });
dataRefresh();
});
}
return v;
};
上記のコードでは、dataRefresh()
該当するすべてのサブスクライバーにデータを更新するように指示します。ですから、まだコールバックを使用していると言えますが、方法は異なります。
これを行うためのより良い方法はありますか?私はこれまでjavascriptの強力なデータアクセス層を作成したことがなく、慣例として従うべきパターンがあるのか、それともヒューリスティックな解決策があるのか知りたいですか?