所以我一直在查看关于回调的一堆问题,而我似乎无法将自己的代码包裹起来以便正常工作。我正在尝试使用Soundcloud API检查URL,以确保它们指向工作声音。
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,如果它更容易。 :)我也对完全不同的方法持开放态度,并尽可能地回答问题。谢谢你的帮助!
答案 0 :(得分:0)
你在这里看到的是一个承诺。不是回调。
请参阅: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)
}