1

そのため、ユーザーが twitch でオンラインかどうかを示す簡単なスクリプトが必要です。私はコーディング全般に精通していますが、コールバックを実際に扱ったことはありません。これが私の基本的なコードです。

jQuery(document).ready(function(){

    var streamLink = 'http://api.justin.tv/api/stream/summary.json?channel=ReasNSC2&jsonp=?';

    $.getJSON(streamLink, function(a) {
        if (a.viewers_count != "0")
        {
            alert(true)
        }else {
            alert(false)
        };
    });
});

上記のコードは正常に動作します。期待通りの結果が得られました。だから今、私は自分のコードで結果を使いたいと思っています。したがって、私の最初の考えは次のとおりです。 return ステートメントを使用しましょう。

 jQuery(document).ready(function(){
    alert(getStatus())
});
    function getStatus()
    {
        var streamLink = 'http://api.justin.tv/api/stream/summary.json?channel=ReasNSC2&jsonp=?';

        $.getJSON(streamLink, function(a) {
            if (a.viewers_count != "0")
            {
                return(true)
            }else {
                return(false)
            };
        });
    }

だから私はこれを「作成」しました。うまくいきません。インターネットとスタックオーバーフローで多くの説明を見つけましたが、本当に役立つものを抽出できませんでした。この基本的な質問について誰か助けてくれませんか?

リクエストを実行してから続行したいと思います。よろしくお願いします:)

4

3 に答える 3

1

コールバックにいるため、値を送信するにはコールバック関数を使用する必要があります。何かのようなもの:

function getStatus()
{
    var returnValue;
    var streamLink = 'http://api.justin.tv/api/stream/summary.json?channel=ReasNSC2&jsonp=?';

    $.getJSON(streamLink, function(a) {
        if (a.viewers_count != "0") {
            returnFunction(true);
        }
        else {
            returnFunction(false);
        };
    });
}

function returnFunction(value)
{
    //do something with your value.
}
于 2013-09-02T09:16:36.033 に答える
1

コードで既にコールバックを使用しています。たとえば、次のようになります。

$.getJSON(streamLink, function(a) {... //where function(a) is the anonymus callback function

コールバック関数を引数として「getStatus」関数に追加すると、次のようになります。

function getStatus(callback){
  $.getJSON(streamLink, function(a) {
    if (a.viewers_count != "0") {
      callback(true);
    } else {
      callback(false);
    };
  });
}

そして、次のように呼び出します。

jQuery(document).ready(function(){
  getStatus(function(result){ alert(result); });
  //or even in this case you could just add the 'alert' as the callback:
  getStatus(alert);
});
于 2013-09-02T09:27:37.443 に答える