Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 从函数内的请求返回值_Javascript_Angularjs - Fatal编程技术网

Javascript 从函数内的请求返回值

Javascript 从函数内的请求返回值,javascript,angularjs,Javascript,Angularjs,我正在从AngularJS中的一个控制器发出一个调用,它将数据传递给一个服务,以获得一个响应,然后我需要在其中检查一个条件 控制器 服务 该值返回为未定义 问题 如何从服务向控制器返回值?如果有人能建议更好的方法,甚至在您的服务中,您有一个异步函数,它返回一个承诺, 这意味着当您到达该部分时,您的过程将继续,并且then()中的那部分代码将在稍后执行 如果您希望等待承诺执行,可以使用AngularJS 阅读AngularJS的承诺: 蓝色之后是什么情况?您在服务中使用的工厂在哪里?您是否正确关闭

我正在从AngularJS中的一个控制器发出一个调用,它将数据传递给一个服务,以获得一个响应,然后我需要在其中检查一个条件

控制器

服务

该值返回为未定义

问题


如何从服务向控制器返回值?如果有人能建议更好的方法,甚至在您的服务中,您有一个异步函数,它返回一个承诺, 这意味着当您到达该部分时,您的过程将继续,并且
then()
中的那部分代码将在稍后执行

如果您希望等待承诺执行,可以使用AngularJS

阅读AngularJS的承诺:

蓝色之后是什么情况?您在服务中使用的工厂在哪里?您是否正确关闭了案例-case'progress=80;}谢谢。在服务中处理承诺并访问控制器中的必要数据
patents.forEach(function(item){ //patents is resolved in a router file which returns a number of items from a request
    item.renewalProgress = patentsService.phaseProgress(item);
})
factory.phaseProgress = function(item) {

var progress = function(item)
    factory.fetchCostAnalysis(phase.id)
        .then(
            function(response){
                var progress;
                    switch(response.currentcostBand) {
                        case 'Green':
                        progress = 0;
                            break;
                        case 'Amber':
                         progress = 20;       
                            break;
                        case 'Red':
                        progress = 40;           
                            break;
                        case 'Blue':
                        progress = 60;
                            break;
                        case '
                        progress = 80;
                    }
                 return progress
                }, function(errResponse){
                    console.log('no')
                }
            )


    return progress;

}