2016-08-16 3 views
1
내가 MSSQL을 사용하고

을 콜백 : 이제전달 추가 매개 변수는 SP 실행 Node.js를에

var fnGetMapping = function(results) { 

     new sql.Request(db.sqlConnection) 
      .input('myParam', sql.VarChar(60), 'myValue') 
      .execute('usp_MySP', fnProcessUUIDData); 
}; 

을 내 fnProcessUUIDData은 다음과 같습니다

var fnProcessUUIDData = function(err, recordsets) { 
    if (err) { 
     console.log("Error calling MS SQL: " + err.message); 
    } else { 
     if (recordsets[0].length > 0) { 

     } else { 

     }; 
    } 
}; 

내가 지금 필요한 것은 중 하나를 전달하는 것입니다 내 자신의 매개 변수를 fnProcessUUIDData에 저장합니다.

일부는 articles인데, 가능할 수도 있지만 내 경우에는 제대로 작동하지 않을 수 있으며, 내가하고 싶은 일이 있으면 의견을 보내 주시면 감사하겠습니다.

답변

3

apply을 사용하면 컨텍스트를 잃지 않고 추가 인수를 전달할 수 있습니다. fnProcessUUIDData는 평범한 구식 기능이 아닌 방법 (내부적 this 사용하지 않음) 때문에 apply overcomplicates 물건을 사용

new sql.Request(db.sqlConnection) 
    .input('myParam', sql.VarChar(60), 'myValue') 
    .execute('usp_MySP', function(...args) { 
    fnProcessUUIDData.apply(this, args.concat(some, extra, parameters)); 
    }); 

var fnProcessUUIDData = function(err, recordsets, some, extra, parameters) { 
    console.log(this, some, extra, parameters); 
}; 
2

. 당신이해야 할 일은 다른 기능으로 포장하는 것입니다 :

new sql.Request(db.sqlConnection) 
    .input('myParam', sql.VarChar(60), 'myValue') 
    .execute('usp_MySP', function(err, recordsets) { 
    fnProcessUUIDData(err, recordsets, additional_parameter); 
    });