Javascript 角度工厂,then()promise中的返回语句返回未定义
我使用Javascript 角度工厂,then()promise中的返回语句返回未定义,javascript,angularjs,Javascript,Angularjs,我使用MakeBusMarkers(orderedFilteredData)调用控制器中的以下工厂 Console.log(mark)返回一个有效的对象(在return语句之前调用)。 我假定答案很简单,但我做错了什么 .factory('MakeBusMarkers', ['busesByDepot', '$timeout', 'CamelToString', function(busesByDepot, $timeout, CamelToString){ // make leaflet m
MakeBusMarkers(orderedFilteredData)
调用控制器中的以下工厂
Console.log(mark)
返回一个有效的对象(在return语句之前调用)。
我假定答案很简单,但我做错了什么
.factory('MakeBusMarkers', ['busesByDepot', '$timeout', 'CamelToString', function(busesByDepot, $timeout, CamelToString){
// make leaflet map markers from filtered data
return function(orderedFilteredData){
var mark = {};
busesByDepot.then(function(keyMap){
orderedFilteredData.forEach(function(currentVal){
mark[currentVal.num] = {
message : '#' + currentVal.num.toString()
}
...some additional code here...
console.log(mark);
return mark;
});
}
}])
对
然后,工厂返回一个承诺对象。多谢各位
.factory('MakeBusMarkers', ['busesByDepot', '$timeout', 'CamelToString', function(busesByDepot, $timeout, CamelToString){
// make leaflet map markers from filtered data
return function(orderedFilteredData){
var mark = {};
return busesByDepot.then(function(keyMap){
orderedFilteredData.forEach(function(currentVal){
mark[currentVal.num] = {
message : '#' + currentVal.num.toString()
}
...some additional code here...
console.log(mark);
return mark;
});
}
}])
您是否缺少
return
在busesByDepot之前。然后(…)
?您如何呼叫busesByDepot。您能分享一下吗