我正在编写一个单页应用程序,并已为客户端编写数据访问层。我的问题涉及它的正确设计。虽然我确实理解 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 编写过强大的数据访问层,并且想知道是否有一种模式可以作为约定或启发式解决方案遵循?