Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Comino de Oliveira

Javascript erro com variáveis - Tentativa

Recommended Posts

Olá pessoal, tudo tranquilo?

 

Estou estudando javascript a pouco tempo e estou tentando fazer um javascript mais "orientado".

 

Vi alguns tutoriais pela internet sobre e resolvi me arriscar, porem tem uma variável que retorna sempre vazia, o mais estranho é que pelo console do google se eu escrever meu javascript la ele funciona.

 

Bom deixa a explicação pra la, vou postar o código aqui para vocês verem e se puderem me ajudar!

 

Pessoal não manjo de javascript então por favor caso tenham alguma dica sobre como melhorar o código fiquem a vontade para criticar (construtivamente).

 

Segue o link para o código anterior que eu tinha rodando.

 

http://jsfiddle.net/lcomino/kdwwr/

 

E segue o link para e minha tentativa de melhoria para ser melhor para usar, mais flexível, mais reutilizável.

http://jsfiddle.net/lcomino/M8DfX/

 

Vlw pessoal!

 

:grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Lucas, antes, bem vindo ao fórum. :thumbsup:

 

Estou estudando javascript a pouco tempo e estou tentando fazer um javascript mais "orientado".

Ótimo, está seguindo o caminho certo!

 

 

Pessoal não manjo de javascript então por favor caso tenham alguma dica sobre como melhorar o código fiquem a vontade para criticar (construtivamente).

 

Primeiramente, vamos à documentação, você começou documentando os metódos do teu construtor, porém, parece que do meio para o fim foi dando aquela preguiça e parou, comente os metódos restantes, não deixe alguns documentados e outros não.

 

E referente aos comentários usados para documentar teu código, dá uma olhada no YuiDoc ou no JSDoc, escolha um, e o utilize em teu código, geralmente as IDEs suportam ambos.

 

A estrutura do código está um pouco confusa, você poderia melhorar isto definindo os metódos privados no topo do construtor, e os públicos no final.

 

Agora o motivo de não está funcionando se deve ao fato de requisições Ajax serem assincrona, ou seja, o restante do código será executado normalmente, não esperando a requisição terminar, logo, o teu metódo getVideos

var v = videos.getVideos();

Será executado antes do fetchVideos

videos.fetchVideos();

ter terminado.

 

Para resolver isso você precisa melhorar a forma com a qual você trabalha com o fetchVideos, uma forma bem rápida seria passando um callback para o mesmo:

this.fetchVideos = function( callback ) {
   //...
};

 

E então você chama este callback logo após de definir os vídeos:

setVideos(data);

 

Outra mais robusta seria usando o objeto Deferred do jQuery.

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá JCMais, nossa muito obrigado pelas dicas, vou arrumar tudo agora!!!

 

Já tinha percebido que as funções estavam sendo executadas antes, porém como disse não entendo muito então não sei como funciona o callBack.

 

Vou ver também sobre o deferred do jQuery que você citou.

 

Muito obrigado pelas dicas! Vou implementá-las e posto o código novamente para ver se está ok!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.