2016-10-12 13 views
-1

getJson関数から値を返したいが、getJSONが待機しているのでイベントは発生しない。実現したコールバック関数を試しましたが、結果は同じです。 私のコードは

function getFBName(callback) { 
    $.getJSON("http://ip-api.com/json/?callback=?", function (data) { 
    callback(data); 
    }); 
} 

function handleName(a) { 
    console.log(JSON.stringify(a)); 
    return JSON.stringify(a); 
} 

コンソール結果が真であるが、あなたが関数getFBNameを返すように値を取得したい場合は、戻り値は

+0

ここで 'handleName'関数を使用する必要はありますか? –

+0

私はhandleNameを 'Ip'のように呼び出しているため、 '' + getFBName(handleName)+ "' –

+0

コールバックを使用しても' $ .getJSON'が非同期であるときに結果を同期的に返そうとしていますか? – adeneo

答えて

0

「未定義」です。

function getFBName(callback) { 
    $.getJSON("http://ip-api.com/json/?callback=?") 
    .done(function(result) { 
     console.log(result.a); //assuming that exist the element a 
    }); 
}; 

注:あなたが「はconsole.log」でブレークポイントを入れて、undefinedを返す理由を確認することができますが、このように気にいらを行うことができます。 json応答の結果に正しくアクセスすることを確認してください。 getJSONは非同期であることを覚えておいてください。

+0

コールバック関数はどこですか?私は理解していないと私はこのコードを試してみました。 –

関連する問題