所以我一直在研究一堆有关回调的问题,但我似乎无法全神贯注地让自己的代码正常工作。我正在尝试使用 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,如果它能让事情变得更容易的话。 :) 我也愿意接受完全不同的方法,并将尽我所能回答问题。感谢您的帮助!
最佳答案
您在这里看到的是一个 Promise。不是回调。
如果你想使用回调,你会想做这样的事情:
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)
}
关于javascript - "Conditional"Javascript 中异步请求的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36095241/