Preciso de ajuda para encontrar uma alternativa ao síncrono ajax jQuery

Eu tenho um formulário muito complexo que contém várias guias. Cada guia contém um únicoPlupload instância (para carregar várias imagens). O formulário permite que um usuário faça upload de um "caso" de imagem médica, em que cada caso é composto por vários "estudos" de imagens (por exemplo, tomografias computadorizadas) e cada estudo contém várias imagens.

Quando o usuário clica no botão "enviar", intercepto o clique com jQuery porque preciso fazer o seguinte:

Verifique os campos necessários são inseridos[fácil]Obter um número de identificação exclusivo do meu servidor. Esse número de ID é obrigatório para cada instância do Plupload para saber para qual diretório fazer upload.

Na minha função chamada de submissão de formulário, eu tenho o seguinte trecho de código:

var case_id;

// Code to check the required fields are entered
....

// Get the case id number from the server
$.get('ajax/unique-case-id').done(function(data){
    case_id = data;
});

// do something with case_id and other things. MUST happen after the ajax call
....

// if there was a problem uploading the images, stop the form from submitting
if (problem_occured) {
    return false;
}

Com a minha lógica atual, preciso que o script pause até obter o case_id. Isso foi possível antes do jQuery 1.8, mas a propriedade $ .ajax () async: false foi preterida.

Minha pergunta é dupla:

Existe uma maneira de segurar o script até obter o case_id necessário?Se não, alguma ideia de como eu poderia mudar minha lógica para contornar isso?

Você pode estar se perguntando por que case_id é tão importante. As instâncias do plupload fazem o upload delas antes do envio do formulário e precisam de um diretório para o qual enviar. Eu quero que as imagens que estão sendo enviadas para ir para uma pasta no meu servidor chamado case_id. Isso permitirá que o script PHP no servidor descubra o que fazer com eles assim que receber o restante dos dados POSTed do formulário.

questionAnswers(1)

yourAnswerToTheQuestion