javascript - "Conditional"Javascript 中异步请求的回调

标签 javascript asynchronous callback soundcloud

所以我一直在研究一堆有关回调的问题,但我似乎无法全神贯注地让自己的代码正常工作。我正在尝试使用 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。不是回调。

参见: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)
}

关于javascript - "Conditional"Javascript 中异步请求的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36095241/

相关文章:

multithreading - epoll/select 用于互斥量/信号量

scala - Future.onComplete : can't understand the method signature

c# - 取消自动完成字段的任务不会取消所有以前的任务

javascript - 如何在第一次运行时更新回调 View

javascript - Webpack + React : pass commit SHA from webpack to JS

javascript - 在一个脚本中使用多个 page.open

javascript - 如何使用 puppeteer 确认警报弹出窗口

javascript - Tinymce 高度在不同浏览器中不同

vue.js - 如何从 vue 中的回调访问本地组件变量?

ios - 如何通过iOS Swift中的回调函数发送JSON响应数据?