Popular select2 dependente de select1

Bom dia galera, estou com um problema do qual não consigo resolver. É o seguinte, eu tenho 2 selects, um com as siglas dos estados brasileiros e outro com as cidades, o select de cidades é populado de acordo com o estado selecionado, até aí tudo bem. O problema é que estou usando um webservice do viacep para trazer dados de acordo com o cep preenchido, ao preencher o cep ele seta todos os dados corretamente, mas quando chega o valor da cidade, ele tenta setar o select antes do preenchimento das cidades. Sendo assim gostaria de saber se existe uma maneira de saber quando o select esta completamente carregado ? Segue o trecho do código…

                //Consulta o webservice viacep.com.br/
                $.getJSON("https://viacep.com.br/ws/"+ cep +"/json/?callback=?", function(dados) {
                	if (!("erro" in dados)) {
                        //Atualiza os campos com os valores da consulta.
                        $("#endereco").val(dados.logradouro);
                        $("#bairro").val(dados.bairro);
                        $("#estadoatual").val($('option:contains('+(dados.uf)+')').val());
                        $("#estadoatual").change();
                        $("#cidadeatual").val($('option:contains('+(dados.localidade).toUpperCase()+')').val());
                        $("#complemento").val(dados.complemento);
                    } //end if.
                    else {
                        //CEP pesquisado não foi encontrado.
                        limpa_formulário_cep();
                        alert("CEP não encontrado.");
                    }
                });

Ajax é assíncrono. Para sua situação, vc deve implementar a solução utilizando funções de callback.

Se realmente tiver essa necessidade, pode fazer de forma sincrona:

$.ajax({
  type:'GET',
  url: 'https://....',
  dataType: 'json',
  async: false,
  success: function(dados) {
    //retorno...
  }
});

(é só pra ilustrar, consulte a documentacao do jquery sobre o parametro async).

O lado ruim que vai congelar esperando a resposta.