所以我一直在回看一堆關於回調的問題,我似乎無法繞過我的大腦讓我自己的代碼正常工作。我正在嘗試使用Soundcloud API檢查網址以確保它們能夠直接播放工作聲音。Javascript中異步請求的「條件」回調
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
}
}
通過顯示的代碼,urlOK當然會吹過resolve()調用並在checkAllInput函數中「返回」false。我已經嘗試在所指定的位置向urlOK添加回調函數,並正確處理了錯誤的URL輸入。良好的URL輸入雖然沒有「捕捉」,但我對於如何繼續進行了很大的困惑。
如果使事情變得更容易,我很樂意使用jQuery。 :)我也接受完全不同的方法,並會盡我所能回答問題。感謝您的任何幫助!
'urlOK'是異步的,[你不能'return'(HTTP:/ /stackoverflow.com/q/14220321/1048572?how-to-return-the-response-from-an-asynchronous-call)它的任何值。改爲返回布爾值的延遲/承諾。 – Bergi
Ahhhhh,好的,我明白了,非常感謝! – WhudderButter