Как назначить ответ на запрос ajax переменной [duplicate]

Используйте moment.js для синтаксического анализа дат:

var caseOne = moment("Jul 8, 2005", "MMM D, YYYY", true).toDate();
var caseTwo = moment("2005-07-08", "YYYY-MM-DD", true).toDate();

Третий аргумент определяет строгий разбор (доступно с 2.3.0). Без него moment.js также может давать неверные результаты.

0
задан Rocstar 15 January 2019 в 15:39
поделиться

1 ответ

Поскольку это асинхронный, у вас есть несколько вариантов. Основным является использование обратного вызова:

function createUniqueKey (arg1, arg2, callback) {
  $.post("/ajax/documents.php", {arg_1: arg1, arg_2 : arg2}, function(data){
    console.log(data) //Good result
    callback(data);
  }, "text");
}

$('#btn').click(function() {
  createUniqueKey(arg1, arg2, function(uniqueKey){
      console.log(uniqueKey);
  })      
});

Другой вариант - выяснить, как реализовать его как Promise или использовать функции Async:

function createUniqueKey (arg1, arg2) {
    return new Promise(function(resolve, reject) {
        $.post("/ajax/documents.php", {arg_1: arg1, arg_2 : arg2}, function(data){
            console.log(data) //Good result
            resolve(data);
          }, "text");
    })

}

$('#btn').click(function() {
  createUniqueKey(arg1, arg2).then(function(uniqueKey) {
    console.log(uniqueKey);
  })
});

. Обратный вызов .click эквивалентно этому

$('#btn').click(async function() {
  var uniqueKey = await createUniqueKey(arg1, arg2);
  console.log(uniqueKey);
});
0
ответ дан TKoL 15 January 2019 в 15:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: