Html - CSS - XML - JavaScript - Ajax
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)
-
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 -
js bilmem
1. siteden aldigini diger fonksiyona aktar
-
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.
-
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
-
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.
-
RockZs abi, Dışarıda Bi Değişken tanımla,
var response = [];
function
get_from_system(
var
) {
id:
var
,
key: api_key
},
function
(data) {
var
ab = data.items[0].contentDetails.foo;
response['ab'] = ab;
});
id:
var
,
key: api_key
},
function
(data2) {
var
ba = data2.items[0].contentDetails.bar;
response['ba'] = ba;
},succes = function(){
response );
console.log(});
}
-
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..
-
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.
-
bele bişiler mi
http://stackoverflow.com/questions/494779/how-do-i-pass-multiple-arguments-into-a-javascript-callback-function
-
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
-
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