简体   繁体   English

角度工厂,then()中的return语句promise返回未定义

[英]angular factory, return statement in then() promise returns undefined

I call the following factory in my controller with MakeBusMarkers(orderedFilteredData) . 我使用MakeBusMarkers(orderedFilteredData)在控制器中调用以下工厂。

Console.log(mark) returns a valid object (called right before the return statement). Console.log(mark)返回一个有效的对象(在return语句之前调用)。
I presume a simple answer, but what am I doing wrong? 我假设有一个简单的答案,但是我在做什么错呢?

.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;
    });
}

}])

Correct, 正确,

The factory then returns a promise object. 然后,工厂返回一个promise对象。 Thank you. 谢谢。

.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;
});
}

}])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM