У меня есть служба, которая вызывает запрос $ http и возвращает JSONP. Возвращенный JSONP из API имеет значение {valid: true} или {valid: false}. Мой код:Ждите обещания решить перед выполнением кода
this.checkValid = function() {
return $http({
method: 'JSONP',
url: 'API' + '?callback=JSON_CALLBACK',
}).then(function (response) {
var temp = response.data.valid;
return temp; //returns true or false
}, function (response) {
console.log('something went wrong');
})
}
Я еще одна услуга, которая зависит от реакции вернулся из checkValid():
var data = requestService.checkValid();
var valid;
//handling the promise
data.then(function (response) {
valid = response;
console.log('Inside the then block : ' + valid);
});
if (valid)
console.log('Valid!');
else
console.log('Not Valid!');
Выход (после того, как апи возвращает действительный: истина):
'Not valid'
'Not valid'
'Not valid'
'Not valid'
'Inside the then block : true'
'Inside the then block : true'
'Inside the then block : true'
'Inside the then block : true'
Хотелось бы знать, как подождать then()
, чтобы установить, установив value
в true
или false
, а затем перейти к if
заявление.
вы можете использовать обещание ($ q), чтобы обеспечить возврат результата, а затем выполнить следующий. ты пробовал ? –