Programação concorrente
Nesta aula vamos usar o site JSONPlaceholder para dar suporte a nossos exemplos práticos.
Para simplificar o código, definimos a variável global ROOT como sendo a URL do JSONPlaceholder.
As funções $.get(url, f)
e $.post(url, f)
realizam uma requisição AJAX à url
e, quando a resposta chega, chama a função f
passando o objeto associado à resposta.
Para ver o que a chamada $.get(ROOT + '/users', ...)
retorna, basta acessar http://jsonplaceholder.typicode.com/users no seu navegador.
Exemplo simples
Antes de executar o código a seguir, tente prever a ordem de execução das instruções console.log
.
function(str, info) { return simplesEval(str, info); }
Algo mais elaborado
O exemplo a seguir deveria buscar o id do usuário com username Delphine
e então mostrar o título dos álbuns desse usuário:
function(str, info) { return simplesEval(str, info); }
No entanto, o programador não percebeu que as chamadas de função que realizou são assíncronas, e por isso o programa não funciona como deveria. Conserte o programa.
Gate
Agora você quer pegar o e-mail de todos os usuários pagantes e então exibir os dois e-mails separados por vírgulas (não importa a ordem). (Suponha que a url /users
, que retorna todos os dados de todos os usuários, não existe). Corrija o código abaixo:
function(str, info) { return simplesEval(str, info); }