这是我的问题,我在.js文件中有一个javascript函数,它执行一些操作,收集信息并使用回调。回调函数也是一个javascript函数,但驻留在.cshtml文件中。我很难将我的.js javascript函数中的值返回到我的.cshml javascript回调函数。
这是一个小样本代码......
我的.js函数,我想从中返回一个值:
function returnVal(itemID, onCompleteCallback) {
//get vals from DB
onCompleteCallback();
}
调用上一个函数的.cshtml脚本,我需要获取返回值,即使按下按钮:
updateBtn.onclick = function(e) {
if(action==1) {
returnVal(itemID, OnCompleted);
}
我尝试了两种方法,但都没有效果。我试过在" returnVal"中返回一个值。功能似乎不会导致返回任何内容。我也试过将变量作为类型var传递并在returnVal函数中设置它,我理解原语是通过值传递的(因此这不会起作用)但是对象是通过引用传递的,所以我想这个会工作。无论如何,两者都没有成功。贝娄是我如何尝试上述两种方法的例子:
方法1:
function returnVal(itemID, onCompleteCallback) {
//get vals from DB
onCompleteCallback();
return x;
}
updateBtn.onclick = function(e) {
if(action==1) {
x = returnVal(itemID, OnCompleted);
}
}
方法2:
function returnVal(x, itemID, onCompleteCallback) {
//get vals from DB
onCompleteCallback();
}
updateBtn.onclick = function(e) {
if(action==1) {
var x;
returnVal(x, itemID, OnCompleted);
}
}
在这两种情况下' x'没有设定。我希望我提供了足够的细节,非常感谢任何帮助。
答案 0 :(得分:1)
我想你想要像
这样的东西function returnVal(itemId, onComplete){
var data = getValueFromDatabase();
onComplete(data);
}
updateBtn.onclick = function(e) {
if(action==1) {
returnVal(itemID, function(data){
// Do something with returned value i.e. 'data'
});
}
}