2016-11-14 18 views
0

私は2つのパラメータを受け入れるtestという名前の関数を持っています。その関数への入力があれば、それは完璧に働きます。しかし、私は入力が来るかもしれないし、来ないかもしれないシナリオを持っています。そのようなシナリオをどう扱うか。 node.jsで実行できますか?私は型チェックを使用してみましたが、期待どおりに動作しませんでした。関数内のオプションのパラメータを扱う方法

function test(input, callback) { 
    if (input) { 
     callback(input) 
    } 
    else { 
     callback("No input") 
    } 
} 
test("message", function (result) { 
    console.log(result) 
}) 
test(function (result) { // This scenario fails 
    console.log(result) 
}) 
+1

であるかどうかをチェック入力しました両方の引数。 – Teemu

+0

@RobG私はすでにhttp://stackoverflow.com/questions/148901/is-there-a-better-way-to-do-optional-function-parameters-in-javascriptというリンクを参照しました。しかし、オプションのパラメータとして2番目のパラメータだけの例ができました。私の場合は、2番目のパラメータが必須または必須パラメータです – user4324324

答えて

0

をあなたはtypeof入力をチェックすることができ、それが機能

function test(input, callback) { 
    let input = input; 
    let cb = callback; 

    if (typeof input === 'function') { 
     cb = input; 
     input = 'some value'; 
    } 

    cb(input); 
} 

test("message", function (result) { 
    console.log(result) 
}) 


test(function (result) { // This scenario fails 
    console.log(result) 
}) 
0

あなたはそうのようなパラメータとしてnullを渡すことができます。

test(null, function (result) { 
    console.log(result) 
}) 
+0

より良い方法はありますか? – user4324324

+0

あなたの質問には限られた情報しかないので、あなたのニーズに適したものが何であるかを知ることは不可能です。 – Esko

関連する問題