角色很新。
我正在使用$ resource来获取Mongodb的约会列表。当资源返回时,我得到[$ promise:Promise,$ resolved:false],因此当我在下面执行时。
在控制台中挖掘[$ promise:Promise,$ resolved:false]时,我会看到所有约会。
在我在角度视图中呈现约会之前,我需要做一些业务规则检查。
我尝试过使用。然后没有变化。 $ resolve解决了什么:false是什么意思?
感谢您的帮助
var appointments = Appointments.findByCat({
catId: $stateParams.catId
});
console.log(appointments); //This prints [$promise: Promise, $resolved: false]
return appointments.length; // is 0 always
答案 0 :(得分:4)
$ resolve解决了什么:false是什么意思?
这意味着承诺没有得到解决。换句话说,Appointments.findByCat
是异步的,尚未完成检索值。您需要使用then
。
function doStuff() {
return Appointments.findByCat({
catId: $stateParams.catId
}).then(function(appointments) {
console.log(appointments);
return appointments.length;
});
}
问题是调用它的代码也必须具有promise意识。您不能直接使用函数的返回值(doStuff
)。您还需要在调用者中使用then
。
// Won't work
var count = doStuff();
// Use count
// Will work
doStuff().then(function(count) {
// Use count
});