AJAX вызов внутри функции - PullRequest
       9

AJAX вызов внутри функции

0 голосов
/ 15 сентября 2010

У меня есть функция, которая выполняет некоторые задачи. Внутри функции у меня есть вызов ajax. если ответ, полученный от ajaxcall, равен true, функция должна продолжаться с остальной частью задачи. Иначе она должна остановиться в этой точке. Но вышеупомянутых вещей не происходит, вместо этого функция выполняется независимо от вызова ajax. пожалуйста, помогите мне в этом

function f1(id)
{
var test= id
var url="contentserver?pagename=mandatory@id"=+id;
var ajax=new Ajaxrequest(url,validatecallback);
ajax.doGet();
if(id==true){
return;
}
........(some code which has to carried out after the ajax call)
}
function validatecallback
{
this function gets the response for the above mentioned ajaxcall
we are setting a global variable(i.e id) here so that we can use that we can retrieve that in function f1
}

Ответы [ 2 ]

0 голосов
/ 15 сентября 2010

См. Мой ответ на этот связанный вопрос: Как я могу написать асинхронный метод в JavaScript при публикации или цикле?

По сути, вы должны изменить свое мышление. Вместо этого оно должно быть примерно таким:

function f1(id) {
  var test= id
  var url="contentserver?pagename=mandatory@id"=+id;
  var ajax=new Ajaxrequest(url,function (r) {
      validatecallback(r)
      if(id==true){
        return;
      }
      ........(some code which has to carried out after the ajax call)
  });
  ajax.doGet();
}
0 голосов
/ 15 сентября 2010

Функция "f1" имеет формальный параметр с именем "id"; это переменная, которая будет проверяться в выражении «if (id == true)». Хотя может быть верно, что существует также глобальная переменная с именем «id», и что функция обратного вызова будет обращаться к ней и изменять ее, это другая переменная. Модификация к нему не повлияет на тест в f1.

...