【发布时间】:2016-03-15 13:31:16
【问题描述】:
如果 http 承诺已解决,我将使用下面的代码从方法返回字符串,但控制不会等到承诺返回,并且我看到返回对象是 switch 中的方法方法。谁能告诉我什么我在这里做错了!
控制器有以下逻辑:
var status=function(action){
switch(action)
{
case 'create':
return $scope.submitdata();
break;
default: alert();
}
$scope.submitdata=function()
{
service.postdata($scope.formdata)
.success(function(data){
$scope.response=data;
return 'SUCCESS';
})
.error(function(error){
Console.log(error);
return 'FAILURE';
})
}
服务方式:
this.postdata=function(data){
return $http.post(URL,DATA);
}
【问题讨论】:
-
你不能从异步回调函数返回值...你需要使用基于回调的处理
-
如果您使用 promise API,那么您可以使用 then 函数链接结果。或者你可以试试回调模式。
-
Postdata是如何使用的? -
你最好的选择可能是返回承诺,因为它是异步的,所以你不能只返回它的结果,但你可以设置函数返回承诺并在以后的代码中解决承诺.
标签: javascript angularjs angular-promise