1
私の2番目のajax呼び出しは常に未定義です。Jquery ajax約束が返されていません
var getrpmData = fetchAjaxData(
{
"MachineID": MachineID,
"diaVal": diaVal,
"ggVal": ggVal,
"ITEMID": ITEMID
},
"url_to_call");
getrpmData.then((rpmData) => {
console.log(rpmData.d);//getting desired value from this
if (rpmData.d) {
shifHourUsigRPM(rpmData.d);
}
})
.then((prodRate) => {
console.log(prodRate.d.KnittingQty);//not getting value
})
.fail((err) => {
console.log(err);
}
);
// Generic function to make an AJAX call
var fetchAjaxData = function (dataParam, dataURL) {
// Return the $.ajax promise
return $.ajax({
beforeSend: function() { $.blockUI(); },
complete: function() { $.unblockUI(); },
type: "POST",
url: dataURL,
dataType: "JSON",
contentType: "application/json;charset=utf-8",
data: JSON.stringify(dataParam)
});
}
function shifHourUsigRPM(rpm) {
var KnittingWorkOrderId = GetValue($("#cmbKWO").val(), 'dlKWO');
var ITEMID = $("#cmbFabName").val();
var machineId = GetValue($("#cmbMachineID").val(), 'dlMachineID');
//fetchAjaxData(
// { "this_RPM": rpm, "fab": ITEMID, "machineId": machineId, "KWOID": KnittingWorkOrderId },
// "pageKnittingProductionPlanning_MachineWise.aspx/KPP_Load_QtyByRPM");
return $.ajax({
type: "POST",
beforeSend: function() { $.blockUI(); },
complete: function() { $.unblockUI(); },
url: "pageKnittingProductionPlanning_MachineWise.aspx/KPP_Load_QtyByRPM",
dataType: "JSON",
contentType: "application/json;charset=utf-8",
data: JSON.stringify({ "this_RPM": rpm, "fab": ITEMID, "machineId": machineId, "KWOID": KnittingWorkOrderId }),
success: function (data) {
//var result = data.d;
}
});
は私のバックエンドのWebサービスが正常に動作し、そして所望の値を返すが、ネットワークの応答からの応答の下になって二console.log
コール
にその値を取得していない:私は
{"d":{"__type":"BLL.Kniting_BLL.KnittingQty","TotalFabNeed":"5 is production rate","RemFabQty":null}}
私の二番目を期待する
"5は生産率"
が、undefined
は、コンソール
最初の 'then'コールバックは値を返していません。 2番目の 'then'コールバック引数の値として期待するものは、最初の' then'コールバックで返すものになります。あなたがそこに何かを返さないので、あなたは2番目に何も得られません。 – trincot
私の最初の呼び出しは** shifHourUsigRPM(rpmData.d); **別の約束を返すべきです – autopilot
したがって、shiftHourUsigRPM(rpmData.d)の呼び出しの前に 'return'を追加してください。さもなければ返された約束はどこにも行きません。 – trincot