2016-02-09 5 views
0

Я объявила функцию, которая запрашивает Redis, и если данные не найдены в redis, то запрашивает базу данных SQL. Ниже приведен мой код, он дает ошибку в первой строке. Я не уверен, почему функция в качестве аргумента вызывает проблемы.JSHint дает ожидаемый идентификатор и вместо этого видит функцию

function redusId(taskId, function (err, reply){ 
var status = taskId + ".status"; 
var response = taskId + ".response"; 
var jsonObject = {}; 

redisClient.get(status, function (error, reply) { 
    if (error) { 
     console.log("redis.status.ERROR: " + error); 
     return; 
    } 

    if (!reply) { 
     checkSQLdb(taskId, function (error, data) { 
      if(error) { 
       console.log("sql.ERROR", error); 
      } 

      if(!data) { 
       console.log("sql.status.ERROR"); 
      } 
      else { 
       // data retrieval and posting in redis and calling redis client again 
       var id = data[0].id; 
       var status = data[0].status; 
       var response = data[0].response; 
       console.log(id, status, response); 
       var requestid = id + ".status"; 
       redisClient.set(requestid, status); 
       requestid = id + ".response"; 
       redisClient.set(requestid, response); 
       redusId(id); 
      } 
     }) 
     } 
    else { 
     jsonObject."status" = reply; 

     if (reply == 1) { 
       //redis returns non one status no response is expected 
       redisClient.get(response, function(error, reply) { 
        if (error) { 
         //redis has the status but not the response 
         console.log("redis.response.ERROR ", error); 
        } 
        else { 
         jsonObject."response" = response; 
         return jsonObject; 
        } 
       }); 
      } 
      else { 
       console.log("status is not one ; no response is expected"); 
       return jsonObject; 
      } 
     } 
    }) 
}); 
+0

Вы можете иметь функцию в качестве аргумента при вызове функции не тогда, когда вы объявляя его. – Molda

+1

В основном, когда вы объявляете функцию, она должна выглядеть так: function redusId (taskId, callback) {...} 'и когда вы вызываете ее так:' redusId (1, function() {...}); ' – Molda

+0

@Molda благодарит, он решил проблему. –

ответ

0

Это было указано в комментариях, и никто не опубликовал это как ответ, следовательно, отправляя его сейчас.

Проблема в фрагменте кода заключалась в том, что я пытался объявить функцию, а также передал ее в качестве аргумента. В данном фрагменте кода, правильный способ сделать

function redusId(taskId,callback){...} 

, а затем вызвать его как

redusId(1, function(){...}); 

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

  • Нет связанных вопросов^_^