2016-03-18 16 views
1

Bu yüzden geri aramalarda bir sürü soruya bakıyordum ve beynimi düzgün çalışacak şekilde kendi kodumun etrafına sarmam gibi görünmüyor. Çalışma seslerine yönlendirdiğinden emin olmak için Soundcloud API ile URL'leri kontrol etmeye çalışıyorum. checkAllInput işlevinde yanlış kararlılık() çağrı ve "iade" geçmiş kurs darbeler, urlOK gösterilen kod ile"Koşullu" Javascript'te zaman uyumsuz isteklerden kaynaklanan geri bildirimler

function urlOK(url){ 
    SC.initialize({ 
    client_id: 'my_client_id' 
    }); 
    SC.resolve(url).catch(function(error) { 
    console.log(error.message); 
    return false; // have tried callback here 
    }); 
    // also want to return true if no errors are found 
} 

function checkAllInput(){ 
    if(urlOK(some_url){ 
    // do more logic 
    } 
} 

. Belirtilen noktada urlOK'a bir geriçağırım işlevi eklemeyi denedim ve bu doğru hatalı URL girdilerini ele aldı. İyi bir URL girdisi olsa "yakalama" değildi ve ne kadar ilerlemem gerektiği konusunda kafam karıştı.

Bir şey kolaylaştırırsa jQuery'yi kullanmaktan mutluluk duyuyorum. :) Ben de tamamen farklı yaklaşımlara açığım ve soruları olabildiğince en iyi şekilde cevaplayacağım. Herhangi bir yardım için teşekkür ederiz!

+0

'urlOK' eşzamansızsa, [yapamazsın' return'] (http://stackoverflow.com/q/14220321/1048572?how-to-return-the-response-from-an-asynchronous-thall) ondan herhangi bir değer. Bunun yerine boolean için ertelenmiş/vaat verin. – Bergi

+0

Ahhhhh, tamam anladım, çok teşekkür ederim! – WhudderButter

cevap

0

Burada neye bakıyorsunuz, bir sözdür. geri arama değil.

bakınız: Eğer böyle bir şey yapmak isteyeyim bir geri arama kullanmak istiyorsa Promise - MDN

:

function urlOK(url, callback, error){ 
    SC.initialize({ 
    client_id: 'my_client_id' 
    }); 

    SC.resolve(url).then(callback).catch(error); 
} 

function urlIsGood(){ 
    console.log('Url is good') 
} 

function urlIsBad(){ 
    console.log('Url is bad') 
} 

function checkAllInput(){ 
    urlOK(some_url, urlIsGood, urlIsBad) 
} 
+0

Mükemmel, çok teşekkür ederim! – WhudderButter

+0

Düzenleme için teşekkürler, bu çok hoştu. Umarım bu diğer API yenilerini de yardımcı olacaktır. :) – WhudderButter