2016-11-14 3 views
0

У меня есть функция с именем 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. Но я мог бы использовать только второй параметр как необязательный параметр. В моем случае требуется второй параметр или обязательный параметр – 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

Вы можете просто передать нуль в качестве параметра, как так:

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

Есть ли лучший способ сделать это? – user4324324

+0

В соответствии с ограниченной информацией в вашем вопросе невозможно узнать, что было бы лучше для ваших нужд. – Esko

Смежные вопросы