folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Javascript Fonksiyon İçinde Global Değişken Yardım



Javascript Fonksiyon İçinde Global Değişken Yardım

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

    javascriptte fonksiyon içinde atadağım değişkeni fonksiyon dışına almakta sorun yaşıyorum elbette mantıken öyle birşey olmaması gerekiyor ama yapmak istediğim o javascriptte bu konuda kafam basmıyor bir türlü.

    a ve b noktam var bunların latlonglarını almam gerekiyor bunun için de

         geocoder.geocode({'address': aNoktasix},function(results,status){
    
          if (status == google.maps.GeocoderStatus.OK){
    
    	   alert(results[0].geometry.location.lat()+", "+results[0].geometry.location.lng())		
    
          }
    
         });
    
    
    
         geocoder.geocode({'address': bNoktasix},function(results,status){
    
          if (status == google.maps.GeocoderStatus.OK){
    
    	   alert(results[0].geometry.location.lat()+", "+results[0].geometry.location.lng())		
    
          }
    
         });

     

    bunları kullanıyorum. sonuçlar kendi içinde gayet güzel alert dönüyor ama bu iki sonucu ayrı ayrı yeniden fonksiyon dışına çıkarmak zorundayım bunu nasıl yapıyoruz?


    :|
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    En basiti taşıyacağın değişkeni window nesnesi üzerinde oluşturman. Örneğin

    geocoder.geocode({'address': aNoktasix},function(results,status){
     
     if (status == google.maps.GeocoderStatus.OK){
     window.geocode1 = results[0].geometry.location.lat()+", "+results[0].geometry.location.lng();
      alert(results[0].geometry.location.lat()+", "+results[0].geometry.location.lng())       
     
     }
     
    });
     
    
    geocoder.geocode({'address': bNoktasix},function(results,status){ if (status == google.maps.GeocoderStatus.OK){ window.geocode2=results[0].geometry.location.lat()+", "+results[0].geometry.location.lng(); alert(results[0].geometry.location.lat()+", "+results[0].geometry.location.lng()) } }); alert(window.geocode1 + " " + window.geocode2);

    Tabi daha düzgün sonuç şu adreste: https://stackoverflow.com/a/6847754

     

    YeniHarman tarafından 02/Kas/17 14:49 tarihinde düzenlenmiştir

    Olaylara karışmayın!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Senkronizasyon durumu nedir ? Senkron mu bu asenkron mu ? Asenkron ise anında cevap alamazsın ki ? Senkron ise üste bi değişken yaz alttan çekersin gene ? Ne gibi bir sıkıntı olabilir ki ?


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    asenkron değil senkron sanıyorum onu da bilmiyorum :B

    şimdi örneklerde hep callback kullanın denmiş bir örnek buldum

     function getLocationData(location, callback) {
      geocoder = new google.maps.Geocoder();
      if( geocoder ) {
        geocoder.geocode({ 'address': location }, function (results, status) {
          if( status == google.maps.GeocoderStatus.OK ) {
            callback(results[0].geometry.location.lat() + " " +results[0].geometry.location.lng());
          }
        });
      }
     }
    
      getLocationData(aNoktasix, function(locationData) {
         console.log(locationData);
       });   

    şeklinde consola bastırıyorum ama bunu yine değişkene alamıyorum :s bişey değişmedi yani.

    window nesnesi undefined döndürüyor işe yaramadı


    :|
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    O zaman asenkron (fena saçmalamışım, özür dilerim).


    Olaylara karışmayın!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    geçici olarak jquery ile elementlere data atayıp sonra yeniden çektirme yaptırdım ama yani ne bileyim bu kadar zor olmamalıydı :D


    :|
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Aynen, bu kadar zor. C# falan olsa await kullanırsın ama burada promiseler var. Callbacklerden çok farklı değil.

    Async metodların ne zaman cevap döndüreceği belli değil. Ayrı bir thread ya da task gibi düşünebilirsin. Yani başlatıyorsun, kendi kendine çalışıyor, belirsiz bir zamanda (hatalı/hatasız) sonlanıyor. Bloklu olmadığı için ise geri dönüş yapabilmesine rağmen bir anlamı olmuyor.

    Hidden inputlar kullanılabilir base64 şeklinde veriyi taşımak için.

    Mesela promise ile yapılan örnek:

    function getAddress(address)
    	{
    		return new Promise(function (resolve, reject) {
    			var geocoder = new google.maps.Geocoder();
    			geocoder.geocode( { 'address': address}, function(results, status) {
    
    				if (status == google.maps.GeocoderStatus.OK) {
    					var latitude = results[0].geometry.location.lat();
    					var longitude = results[0].geometry.location.lng();
    					resolve(latitude + ";" + longitude);
    				} 
    			});
    
            }); 
    	};
    	
    	a = getAddress('ANKARA')
    		.then(function(v){return v; console.log(v);})
    		.catch(function(v){});
    	console.log(a);

     

     

    YeniHarman tarafından 02/Kas/17 16:23 tarihinde düzenlenmiştir

    Olaylara karışmayın!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    hah bu güzelmiş :D teşekkürler hocam yeni birşey daha öğrenmiş olduk


    :|
Toplam Hit: 1003 Toplam Mesaj: 8
javascript değişken fonksiyon global değişken