2017-12-06 19 views
0

親関数が子成功コールバックを返すのは普通ですか、それとも単にケースバイケースに依存していますか?成功コールバックの戻り値を返すべきですか?

var cb = function(){ 
    return 1; 
} 

function ret_cb(succ_cb) { 
    return(succ_cb ? succ_cb() : 1); 
} 

var succ = ret_cb(cb); 
console.log(succ); 

//or 

function no_ret_cb(succ_cb) { 
    if(succ_cb){ 
     succ_cb(); 
    } 
    return 1; 
} 

succ = no_ret_cb(cb); 
console.log(succ); 

これは主に、私はそれはケースバイケースのコールバック

//functional way 

succ = ret_cb(cb); 

//vs 

var some_value = "hello"; 
succ = ret_cb(); 
succ &= cb(some_value); 
+1

親機能とコールバックの目的によって異なります。 – Barmar

+0

これはどのような「成功」ですか? – Bergi

+0

コールバックの目的 – TheAschr

答えて

2

を使用する理由だろう。

関数がコールバックを受け取り、非同期でない場合(コールバックから戻ってから後で返される戻り値がない)、またはループで動作することはまれです(この場合、1つは戻り値の関数を実行した結果)。

+0

...または条件付き(おそらく、長さ0または1のループの特別なケースかもしれません) – Bergi

+0

成功コールバックに何らかのパラメータを渡したい場合親スコープで変数を代入して親スコープで成功コールバックを呼び出す代わりに、関数型プログラミングを使用することができます。 – TheAschr

+0

私の質問を更新して、私が何を意味するのかを表示しました – TheAschr

関連する問題