1
我有一個函數,我正在調用SP來檢索細節。我的行[0]包含從SP檢索的所有數據。我需要返回這個值作爲函數的返回值。 但每次當我回到這個時候,我得到**如何從SP返回的函數中返回值?
不確定
**。
如何通過函數返回結果。 下面是我的代碼:
function GetBOMData(BOMName, params, notifySchneiderParam, res, cubicleType, cubicle) {
var ret;
connection.query('CALL ' + BOMName + '(' + params + ')', function (error, rows, result){
ret= rows[0];
});
return ret;
}
這是我如何打電話給我的功能:
function GetI06TIncomerBOM(cubicleType, body, res, userID, notifySchneiderParam) {
var operatingVoltageUs = body.TechCharacteristics.OperatingVoltage ? parseFloat(body.TechCharacteristics.OperatingVoltage.replace("kV", "")) : 0;
var packingType = body.TechCharacteristics.PackingType;
var cableDeviceSelected = body.cubicleArray[0].grid.CableTestDevice;
var door500MMSelected = body.cubicleArray[0].grid.depthdoor;
var cableType = body.cubicleArray[0].grid.CableType ? body.cubicleArray[0].grid.CableType : null;
var isNotifiedSchneider = notifySchneiderParam ? 1 : 0;
var params = '"' + cubicleType + '",' + operatingVoltageUs + ',"' + packingType + '",' +
cableDeviceSelected + ',' + door500MMSelected + ',"' + cableType + '",' + userID + ',' + isNotifiedSchneider;
// Sample SP call : call usp_GetI06TIncomerBOM("I06TIncomer",6,"LandPacking",1,1,"3x1C",5,0)
var Test = GetBOMData('usp_GetI06TIncomerBOM', params, notifySchneiderParam, res, cubicleType, body.cubicleArray[0]);
return res.json(Test);
}
當您調用SP時,您會異步獲取結果,但您的同步返回語句不會等待此操作,並會同步返回「undefined」。你需要一個回調來返回值。在您要調用此函數的位置發佈代碼,以便我可以發佈答案,以便如何使用回調獲得結果。 – Aruna
我已經添加了關於如何調用此函數的代碼。 –
我的問題是即使我編寫回調函數,函數的參數依賴於其他函數。因此,當我開始運行應用程序時,所有的參數值都是空的,因爲它首先觸發回調函數。 –