Как манипулировать результатом запроса ajax перед переходом к обратному вызову .then - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь добавить некоторую переменную в результат моего ajax-запроса, прежде чем он перейдет к обратному вызову .then (). Но мой код всегда возвращает результат из ответа ajax на оператор .then ().

   $.ajax({
            url: "api.php",  //this returning [{"sid":"454545454554"}]
            success:function(data) {
                a = data.push({"additional_var" : "one"});
                return a;
            }
        })
        .then(function(response1){
            console.log(response1);           
        })

в коде выше response1 всегда возвращайте ответ от моего api.php ([{"sid":"454545454554"}]). Я ожидаю, что response1 добавит {"additional_var" : "one"}, прежде чем он перейдет к .then (). Есть ли способ?

Ответы [ 2 ]

0 голосов
/ 06 июля 2019

Вы можете сделать что-то вроде этого:

$.ajax({
  url: "api.php"
}).then(function(data) {
  data.push({
    "additional_var": "one"
  });
  return data;
}).then(function(response1) {
  console.log(response1);
})
0 голосов
/ 06 июля 2019

Либо поместите все в .then:

    .then(function(response1){
        response1.push({"additional_var" : "one"});
        console.log(response1);           
    })

Или добавить еще одну .then в начало (не очень хорошая идея, если другие части кода не потребляют Обещание отдельно):

const prom = $.ajax({
  url: "api.php"
})
  .then(function(response1){
    response1.push({"additional_var" : "one"});
    console.log(response1);           
  })

prom.then(console.log);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...