1.公司封装的JS框架,给了个存储过程我让我调用交互,现在是解析出来了不知道怎么调用....2.这是我JS逻辑代码的模块需要调数据:
function SampleTime() {
//时间轴
var cirlie = document.querySelectorAll('.top');
for (let v of cirlie) {
v.classList.add('style');
v.onmousemove = function() {
this.classList.add('color');
}
v.onmouseout = function() {
this.classList.remove('color');
}
}
var leftBox = document.querySelectorAll('.left');
for (let v of leftBox) {
v.classList.add('styles');
v.onmousemove = function() {
this.classList.add('colors');
}
v.onmouseout = function() {
this.classList.remove('colors');
}
}
}
3.这是我解析数据的模块已经获取到字段名和值了,就是不知道怎么往逻辑代码里面调用..
// 交互模塊
SampleTime.prototype.getSampleStateBySampleNo = function() {
//直接调用Procedure存储过程
var Request = Global.NewMessage();
console.log(Request)
Request.ProcedureName = "[proc_datalink_getsample_module]";
Request.ParameterNames = ["SampleNo"];
Request.ParameterDataTypes = ["int"];
Request.ParameterValues = [1];
//获取数据
//PostMessage 异步需回调
let Return = Global.SendMessage("DB_CallProcedure", Request);
let Returns = Return.Table0;
console.log(Returns)
//获取字段名
this._fieldsTitle = [];
this._fieldsTitle = Returns._fieldsTitle;
console.log(this._fieldsTitle[0]);
//获取值
this._rowsData = [];
this._rowsData = Returns._rowsData;
for (let datas of this._rowsData) {
console.log(datas[3]);
}
}
SampleTime.prototype.getSampleStateBySampleNo();
3 回答
富国沪深
TA贡献1790条经验 获得超9个赞
第二段代码里有这么一句://PostMessage 异步需回调,也就是说,需要知道 Global.SendMessage() 的回调是怎么定义的才知道该如何去写回调。假设回调是其最后一个参数,传入回调的就是 Return,那么写法应该是像这样
Global.SendMessage("DB_CallProcedure", Request, Return => {
const Returns = Return.Table0;
// ....
});
看你的代码,不像是异步。
非异步的情况下,解析好的数据直接回返就好。比如 return this._rowsData,当然由于这个值赋给了属性,所以也可以在其它地方直接调用(_xxx 一般表示私有属性,所以应该是在其它方法中调用,方法通过 prototype.xxxx = function() {} 定义)
但是在异步情况下,就需要通过回调,或者 Promise 等方式来向后续步骤传递数据,关于这个可以参考阅读一下这篇博客。具体到这个问题,可以这样定义
SampleTime.prototype.getSampleStateBySampleNo = function(callback) {
// .....
if (typeof callback === "function") {
callback(this._rowData);
}
}
添加回答
举报
0/150
提交
取消
