folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Javascript'te Callback (Ve Asenkron Yapıda Global Değişken Değiştirme)



Javascript'te Callback (Ve Asenkron Yapıda Global Değişken Değiştirme)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek
    function get_from_system(var) {
    	$.get("https://www.websiteone.com", {
    		id: var,
    		key: api_key
    		}, function(data) { 	
    			var ab = data.items[0].contentDetails.foo;
    			console.log(ab);
    		});
    	$.get("https://www.websitetwo.com", {
    		id: var,
    		key: api_key
    		}, function(data2) { 	
    			var ba = data2.items[0].contentDetails.bar;
    			console.log(ba);
    		});
    }

     

    Merhaba, iki jQuery .get() işleminden sonra elde ettiğim değişkenleri başka bir fonksiyonla concole.log ile yazdırmak istiyorum. nasıl yaparım?

    burada görüldüğü gibi tek tek yazdırmak işime yaramıyor, bu değişkenleri daha sonra başka bir yerde kullanmalıyım..

    işin sırrı callback'te ama bir türlü çözemedim.. bu arada araştırıyorum ama cevabı bilen varsa sevinirim, işin içinden çıkamadım.

    sevgiler.

    MESELE DEĞİŞTİ, SORUN ÇÖZÜLDÜ, ŞU MESAJDA: http://www.tahribat.com/forum/javascriptte-callback-ve-asenkron-yapida-global-212814/2#msg2646681 

    RockZs tarafından 07/Kas/15 12:28 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    js bilmem

    1. siteden aldigini diger fonksiyona aktar

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek
    Daft bunu yazdı

    js bilmem

    1. siteden aldigini diger fonksiyona aktar

    eyvallah hocam, anladım da burada asenkron bi' yapı var. get zaman alan bi' işlem ve bu işlemler tamamlandıktan sonra diğer fonksiyon çalışmalı ki değişkenlerden herhandi biri "undefined" olmasın.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    burada bir kaç değişik tarzda çözümler var hocam, işini görmez mi?

    http://stackoverflow.com/questions/14754619/jquery-ajax-success-callback-function-definition

     

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek
    unbalanced bunu yazdı

    burada bir kaç değişik tarzda çözümler var hocam, işini görmez mi?

    http://stackoverflow.com/questions/14754619/jquery-ajax-success-callback-function-definition

     

    sağol hocam, işimi görür, burada get() in success parametresini kullanarak başka bir fonksiyona yönlendirmiş. sanırım ben de böyle yapabilirim.  önce ilk get'i alırım, sonra ordan ikinci get'i alana giderim, oradan da iki get işleyecek başka bir fonksiyona :)

    amacım biraz da callback i böyle bir örnekle öğrenmekti. aslında birçok yerde bu callback'i kullandım daha önce ama bu şekilde niyeyse olmuyor.. tam anladım diyorum yine olmuyor :)

    çok teşekkürler.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Shuqufe
    Shuqufe's avatar
    Kayıt Tarihi: 24/Ağustos/2005
    Erkek

    RockZs abi, Dışarıda Bi Değişken tanımla,

    var response = [];

    function get_from_system(var) {
        $.get("https://www.websiteone.com", {
            id: var,
            key: api_key
            }, function(data) {    
                var ab = data.items[0].contentDetails.foo;
                response['ab'] = ab;
            });
        $.get("https://www.websitetwo.com", {
            id: var,
            key: api_key
            }, function(data2) {   
                var ba = data2.items[0].contentDetails.bar;
                response['ba'] = ba;
            },succes = function(){
                 console.log(
    response );
        });
    }

     

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek

    teşekkürler, olayı şöyle çözdüm:

    function get_from_system(var) {
        $.get("https://www.websiteone.com", {
            id: var,
            key: api_key
            }, function(data) {    
                var ab = data.items[0].contentDetails.foo;
                console.log(ab);
            }, get_from_system_2(var));
    
    }
    
    function get_from_system_2(var) {
        $.get("https://www.websitetwo.com", {
            id: var,
            key: api_key
            }, function(data2) {   
                var ba = data2.items[0].contentDetails.bar;
                console.log(ba);
            }, get_from_system_3());
    }
    
    function get_from_system_3() {
    	//processes here
    }

     

    tabi bi' tane global değişken felan tanımlayıp, değişkenleri ona yazdırmak lazım.

    iyi günler..

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek

    bu kez başka bir sorun çıktı:

    var global = [];
    
    function get_from_system(var) {
        $.get("https://www.websiteone.com", {
            id: var,
            key: api_key
            }, function(data) {   
                global[0] = data.items[0].contentDetails.foo;
            }, get_from_system_2(var));
     
    }
     
    function get_from_system_2(var) {
        $.get("https://www.websitetwo.com", {
            id: var,
            key: api_key
            }, function(data2) {  
                global[1] = data2.items[0].contentDetails.bar;
            }, get_from_system_3());
    }
     
    function get_from_system_3() {
        console.log(global[1]);
    }

    bu kod konsola undefined yazdırıyor. niye acaba? 

    değişkeni global bir array tanımladım, sonra da 0 ve 1. indislerine değişkenleri atadım sanıyorum... olmuyor.

    array yerine obje yapmadı denedim yine olmadı.

    fikri olan var mı?

    teşekkürler.

     

    RockZs tarafından 06/Kas/15 20:28 tarihinde düzenlenmiştir
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    bele bişiler mi 

    http://stackoverflow.com/questions/494779/how-do-i-pass-multiple-arguments-into-a-javascript-callback-function


    Hello, i am nothing. I come from Neverland.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek
    ozgunlu bunu yazdı

    bele bişiler mi 

    http://stackoverflow.com/questions/494779/how-do-i-pass-multiple-arguments-into-a-javascript-callback-function

    hocam son console.log u setTimeOut içine alıp, biraz geç başlatınca çalışıyor. yani asenkron olunca böyle globale değişken atamalarla ilgili sorun yaşanıyor anladığım kadarıyla. daha önce de bunla birkaç kez karşılaştım ama bir şekilde hep üstesinden geldim, başka yollardan ama burada yapacak bişey yok. 

    aslında konu şurada anlatılmış : http://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron

     

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    Asekronu şöyle düşün

    O-O-O

    Her yuvarlak bir fonksiyon her çizgi bir callback ve 

    3 yumurta 3 dkda pişerse 100 yumurta da 3 dkda pişer mantığını unutma

    Telefondayım ondan bu hikayeleştirme olayı fakat güzel bir link veriyim sana

    http://www.tahribat.com/forum/bir-mysql-sorum-ve-bir-de-nodejsmysql-sorum-uzm-208169

    Yanlış anladıysam mevzuyu özür diliyorum


    iyibu! yeniden..
Toplam Hit: 1427 Toplam Mesaj: 21
seveseve