Каков наилучший способ передачи данных от одного вызова к другому в этом примере? - PullRequest
0 голосов
/ 13 июня 2018

это, конечно, просто макет, но вы получите представление.

Это первый вызов:

function getData () {
  $.ajax{( 
     type:'GET',
     url: url,
     success: function (res) {
        // logic 
        // 'res.secret' property value that needs to be passed
        }
    )}
}

Теперь, это получает набор данных, которые янужно использовать для другого вызова с POST методом позже.Давайте назовем это res.secret.

Итак, следующий вызов:

function postData () {
  $.ajax{( 
     type:'POST',
     url: url + res.secret,
     success: function (res) {
        //logic
        }
    )}
}

Как лучше всего передать res.secret в postData() в url свойстве?Я могу сохранить его в формате html как data-*, но не думаю, что это лучший способ сделать это.

Также обратите внимание, что postData() и getData() находятся в отдельных файлах .js.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

я стар и не люблю обещаний, я бы вложил их в это;передача результата первого при успехе в качестве параметра второму:

function getData () {
   $.ajax{( 
     type:'GET',
     url: url,
     success: function (res) {
        postData(res.secret);
     }
   )}
}

function postData (theSecret) {
  $.ajax{( 
    type:'POST',
    url: url + theSecret,
    success: function (res) {
      //logic
    }
  )}
}

, это вызывает последовательное и условное выполнение.

0 голосов
/ 13 июня 2018

Это идеальный случай для использования обещаний.Вот как я бы исправил это в ES6 с помощью async / await

(async () => {

    // result1 awaits for GET request to be resolved
    var result1 = await fetch(url);
    // then you pass your 'secret' from result1 to your next POST call
    var result2 = await fetch(`${url}${result1.secret}`, {method: 'post'});

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