As the title says, I want to send $http.get requests to the server until the returned results meets a condition.
This is what I tried:
var searchComplete = false;
var sendGetReq = true;
while(!searchComplete) // #2 and then jumps here
{
if(sendGetReq)
{
sendGetReq = false; // #1 execution reaches here
$http.get('/user/getCondition', {params: {condition: $scope.condition}).
success(function (condition, status, headers, config) {
...
...
if(condition)
{ searchComplete = true; }
else
{ sendGetReq = true; }
}
}
However, the $http.get request never goes. That statement is never reached. When I debugged, I saw that execution will come to sendGetReq=false and then jump to while(!searchComplete). The GET request is never sent.
Would someone please explain:
- Why the execution never reaches GET request and jumps back
- What is the recommended way to to do this continuous GET request
Thank you.
.then, not.success, and you should make this a recursive function. Don't expect perfect behavior using a while and a promise together. Make youself a function that calls itself once the promise has returned.