Como assegurar que um processo assíncrono (inicialização do FaceBook) finalizou?

Olá,
Meu primeiro post na comunidade. Estou fazendo o primeiro projeto em HTML5/JS.

A lógica a ser implementada no site é: Se o usuário for um usuário cadastrado no facebook para o site então não devo apresentar a tela de login.

Como a inicialização do FaceBook é assíncrona, no momento que verifico se o usuário esta logado recebo a msg “FB. não inicializada”. Como o HTML5 continua executando e em diversas partes do site é verificado se o usuário esta cadastrado, verifico que após algumas tentativas (4) a mesma função responde como esperado.

Minha interpretação é que o processo assíncrono de inicialização leva mais tempo do que o HTML para chegar ao ponto de verificação. Alguém tem sugestão ou solução para o problema?

Pensei em colocar um try / cacth e enquanto o número de tentativas for menor do que n ficar tentando…
Mas tb não sei se é possível fazer isso com javascript… Independentemente do problema do Facebook, alguém pode me orientar, pf?

Finalizando: Se eu usar a função javascript timeout dará certo? Ou seja o HTML ficará esperando o timeout do js para só depois continuar com os comando HTML?

Valeu

Fala Cesar,

Normalmente o desenvolvimento no JavaScript é Assincrono, essa é a graça, o fato de termos 99% das funções não blocantes dão agilidade para o JS. Para resolver essa peculiaridade da linguagem, são disponibilizadas funções de Callback, essas são executadas quando o teu método acaba.

Espero ter ajudado.

Obrigado. Vc indica algum site ou material para eu entender sobre callbacks em js? Estou iniciando…

Pode começar com esse do tableless acho que é um bom inicio.

http://tableless.com.br/fluxo-de-execucao-assincrono-em-javascript-callbacks/