假设我想在对象已经在我的模型中时返回一个值,但如果不是,则返回端点服务的结果:
model.getDoohkyById = function( id ){
if( this.data ) {
if( this.data.length > 0) {
for( var i =0; i < this.data.length; i++){
if( this.data[i].id === id ){
//this returns a value
return this.data[i];
}
}
}
}
// this returns a promise
return this.service.getBy('id',id);
}
如何在promise的上下文中构造第一个返回值,以便我可以在没有错误object has no method 'then'
的情况下执行此操作?
DoohkyModel.getDoohkyById(this.doohkyId).then( function(result){
that.doohky = result.data;
});
答案 0 :(得分:2)
您可以使用$q
服务(doc here):
model.getDoohkyById = function( id )
{
if( this.data ) {
var deferred = $q.defer();
if( this.data.length > 0) {
for( var i =0; i < this.data.length; i++)
{
if( this.data[i].id === id )
{
//this returns a value
deferred.resolve(this.data[i]);
break ;
}
}
}
return deferred.promise;
}
// this returns a promise
return this.service.getBy('id',id);
}