2017-02-28 1 views
1

私はこのコードを持っている:独自のコールバック関数で関数の戻り値を使用するにはどうすればよいですか?

$('#from_country').change(function() { 
    var selected_from = $(this).find('option:selected'); 
    var country = roaming_prices_from(selected_from.val(), function() { 
     console.log(country); 
    }); 

はどのようにして、独自のコールバック関数の内部でroaming_prices_fromの戻り値を使用できますか?コールバックパラメータとしてあなたの関数の戻り値を渡すこと

+0

コールバックへの引数として値を渡すことは 'roaming_prices_from'の責任です。この関数を変更するか、関数をコールバックとして使用しないでください(つまり、 'callback(roaming_prices_from(selected_from.val()));') –

+0

'country'を呼び出すときにコールバックメソッドに渡すだけの理由はありません'roaming_prices_from'メソッドから? – Satpal

+0

のように: 'var country = roaming_prices_from(selected_from.val()、function(country){ console.log(国); });'?このdosntはうまくいくようですが、これが正しければ。それから私はどこか他の場所に欠陥があるかもしれません。 –

答えて

2

$('#from_country').change(function() { 
    var selected_from = $(this).find('option:selected'); 
    var country = roaming_prices_from(selected_from.val(), function (xCountry) { 
     console.log(xCountry); 
    }); 
}); 

が、これを行うには、あなたのroaming_prices_from関数内

を値を渡す必要があり、我々は機能roaming_prices_fromがすることを前提としています -

function roaming_prices_from(value, callback) { 
    ..... 
    callback(returnedValue); 
    ..... 
    return returnedValue; 
} 
0

roaming_prices_fromは国で解決されると仮定する必要があります。つまり、その関数はPromise.resolve(country)を持っています。これはあなたのコールバック(国を出力する)がパラメータとしてcountryを受け取ることを意味します。

関連する問題