Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度工厂,then()promise中的返回语句返回未定义_Javascript_Angularjs - Fatal编程技术网

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。您能分享一下吗