Я пытаюсь загрузить данные из сервисного визга, без проблем с запросом, но я не могу нажать его на массив и вернуть его. Мне нужно получить результат ajax на каждой итерации. Как остановить его до получения результата ajax?Получите ajax результат в foreach
Может ли кто-нибудь мне помочь?
this.getDataForPlaces = function(addresses){
\t var locationDescs = [];
\t _.each(addresses, function(address){
\t \t var promise = getLocationDesc(address).then(function(data) {
\t \t locationDescs.push(data);
\t \t });
\t })
\t return locationDescs;
};
var getLocationDesc = function(address){
\t \t \t var parameters = [];
var message = {
'action' : 'http://api.yelp.com/v2/search',
'method' : 'GET',
'parameters' : parameters
};
OAuth.setTimestampAndNonce(message);
OAuth.SignatureMethod.sign(message, accessor);
var parameterMap = OAuth.getParameterMap(message.parameters);
return $.ajax({
'url' : message.action,
'cache': true,
'method':message.method,
'data' : parameterMap,
'dataType' : 'jsonp',
'jsonp' : 'callback',
'success':function(data){
\t console.log(data);
}
});
\t };
Не возвращайте полную функцию ajax, только внутри функции 'success' ajax возвращает' data' следующим образом: 'return data;', потому что возвращает всю функцию ajax, это не данные, которые вы получаете от служб, вы должны вернуть переменную данных. например, проверьте мой ответ на ваш вопрос. –
@Arsh Ajax в состоянии ожидания, в то время как foreach работает, как остановить итерацию до получения значения ajax? –
Пожалуйста, проверьте мой ответ, чтобы узнать, как вы можете это сделать. –