Как передать дополнительную переменную вместе с ответом AJAX? - PullRequest
0 голосов
/ 29 апреля 2019

Нужно запускать некоторый код только после получения ответа AJAX, и мне нужно передать определенную переменную функции назначения, чтобы это произошло.

Попробовал приведенное ниже, но он не вызывает функцию .done, как если бы мы возвращали только ajax (что неудивительно).

function ajax_processor(passthrough_var,ordinary_var)
{
    //Some processing

    return [ passthrough_var, $.ajax({...}) ];
}

ajax_post_processor(array_item)
{
    console.log(array_item[0]);
    console.log(array_item[1]);
}

ajax_processor("Foo","Bar").done(ajax_post_processor);

1 Ответ

0 голосов
/ 29 апреля 2019

Have ajax_processor вернуть обещание, которое разрешается в массив, содержащий ответ и переданную переменную.Что-то вроде

function ajax_processor(passthrough_var,ordinary_var)
{
    return $.ajax({...}).then(response => [passthrough_var, response]);
}

function ajax_post_processor(array_item)
{
    console.log(array_item[0]);
    console.log(array_item[1]);
}

ajax_processor("Foo","Bar").done(ajax_post_processor);
...