在我的情况下,我有一个来自temphire(breeze)的存储库
define(['durandal/system'], function (system) {
var Repository = (function () {
var repository = function (entityManagerProvider, entityTypeName, resourceName, fetchStrategy) {
.........
this.find = function (predicate) {
var query = breeze.EntityQuery
.from(resourceName)
.where(predicate);
return executeQuery(query);
};
function executeQuery(query) {
return entityManagerProvider.manager()
.executeQuery(query.using(fetchStrategy || breeze.FetchStrategy.FromServer))
.then(function (data) { return data.results; });
}
................
};
return repository;
})();
return {
create: create,
getCtor: Repository
};
function create(entityManagerProvider, entityTypeName, resourceName, fetchStrategy) {
return new Repository(entityManagerProvider, entityTypeName, resourceName, fetchStrategy);
}
});
现在
如何做到这一点
repository.query(predicate).execute();
function query(predicate) {
return query = breeze.EntityQuery
.from(resourceName)
.where(predicate);
};
function executeQuery(query) {
return entityManagerProvider.manager().executeQuery(query.using(fetchStrategy || breeze.FetchStrategy.FromServer)).then(function(data) {
return data.results;
});
}
function execute() -- >
return executeQuery
第一个动作返回查询以及之后执行
非常感谢答案 0 :(得分:0)
我认为您尝试的问题是return
终止执行。如果你想做一些事情以及返回该功能,那么你需要在返回之前完成它。
另一方面,如果你真的需要返回值并且然后执行某些东西,那么你应该有调用函数的方法期望返回,调用函数来获得返回值,然后让 调用函数执行你想要执行的事情。如果该执行需要来自返回值的函数的一些数据,则返回带有返回值的信息,并将其传递给执行该函数的函数。
答案 1 :(得分:0)