如何等待诺言解决方案?
问题描述:
我需要等待承诺解决方案。如何等待诺言解决方案?
function myFunction(myService, projectId) {
var localdata;
var myDataPromise = myService.getData(projectId);
myDataPromise.then(function(result) {
localdata = result;
});
var someResult = someProcess(localdata); // I need to wait for promise resolution.
return someResult;
}
UPDATE
我试图澄清我的问题。 我有服务为myService与函数返回的承诺:
var getData = function (projectId) {
return projectResource.getProjectUser({ projectId: projectId }, function (result) {
return result;
}).$promise;
};
答
您不想从一个承诺返回的数据!
您做想要返回承诺,以“继续”链条。
您正在寻找的等待是您附加到承诺的回调。
function myFunction($scope, myService) {
var myDataPromise = myService.getData();
myDataPromise.then(function(result) {
// this is the "wait" your looking for..
$scope.data = result;
console.log("data.name"+$scope.data.name);
});
return myDataPromise; // return the promise
}
答
你并不需要一个局部变量 ...
function myFunction(myService) {
return myService.getData().then(function(result) {
return result;
});
}
和来电者是:
myFunction(myService).then(function(result){
//you can be sure that result is fully computed here
console.log("Your result " + result);
})
对不起,我写了无效的例子。我需要使用局部变量。 – Mediator