2016-03-18 15 views
1

コールバックに関する質問がたくさんありました。自分のコードを適切に機能させるために自分の脳を巡らすことはできません。私は、サウンドクラウドAPIを使ってURLをチェックして、動作音に向かうようにしています。 checkAllInput関数の偽の決意()の呼び出しと「戻り」の過去のコースが吹くの、urlOK示すコードで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にコールバック関数を追加しようとしましたが、これは不正なURL入力を正しく処理しました。良いURL入力は「キャッチ」されませんでしたが、どのように進めるべきかについては非常に混乱しています。

jQueryを使用して何かを簡単に行うことができたらうれしく思います。 :)私は全く異なるアプローチにもオープンしており、可能な限り質問に答えます。何か助けてくれてありがとう!

+0

'urlOK'が非同期で、[ことはできません' return'](のhttp:/ /stackoverflow.com/q/14220321/1048572?how-to-return-the-response-from-an-asynchronous-call)からの任意の値。代わりにブール値の延期/約束を返します。 – Bergi

+0

ああ、ありがとう、ありがとう! – WhudderButter

答えて

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) 
} 
+0

完璧、ありがとう! – WhudderButter

+0

編集していただきありがとうございます。うまくいけば、これは他のAPI初心者にも役立ちます。 :) – WhudderButter

関連する問題