![](/img/trans.png)
[英]How I can call javascript function and get the return value from javascript function
[英]How can I get the return value from a function calling another function in javascript/jQuery?
因此,您可以為var doub
分配一個值,如下所示:
function getDouble(number) {
var doubl = number + number;
return doubl;
}
var num = 4;
var doub = getDouble(num);
我想知道是否可以通過調用第二個函數來獲取返回類型,如下所示。 那么可以將第二種方法的返回值賦給doub
嗎?
function getDouble(number) {
var doubl = number + number;
return quadruple(doubl);
}
function quadruple(doubl) {
quad = doubl + doubl
return quad;
}
var num = 4;
var doub = getDouble(num);
由於某種原因,它對我不起作用。
這是我的問題代碼。我正在做與上面類似的操作,但是不起作用:
在我准備好的文檔中,我有以下代碼..我希望將結果存儲在newjsn中
$(document).ready(function()
{
var newjsn= DatabaseCategoriesToSelectList(num, 200, 100);
我的DatabaseCategoriesToSelectList函數是:
function DatabaseCategoriesToSelectList(jsn, max, min){
var ddl="<option selected='selected' value='"+min+"'>Select...</option>";
//load categories from database, and put them into the select drop down.
$.getJSON(GLOBALURL+'content/plugins/subcategories/getSubcategories.php',
function(data, ddl) {
var datas= jQuery.grep(data, function(element, index){
return element.category_id < max && element.category_id>min; // retain appropriate elements
});
for (x=0; x<datas.length; x++){
ddl= ddl+"<option value='"+datas[x].category_id+"'data-subcategory='"+datas[x].category_subselect+"'>"+datas[x].category_safe_name+"</option>";
}
alert (ddl); return runafter(ddl, jsn);
});
}
function runafter(ddl, jsn){
jsn=ddl;
alert(jsn);
return 500;
}
出於某種原因,警報可以正常工作,但是我無法通過它返回字符串。 我什至嘗試返回500的隨機值,但沒有。
問題在於您永遠不會退出DatabaseCategoriesToSelectList
函數。 您的函數如下所示:
function DatabaseCategoriesToSelectList(jsn, max, min) {
...
$.getJSON(GLOBALURL+'content/plugins/subcategories/getSubcategories.php',
function(data, ddl) {
...
return runafter(ddl, jsn);
}
);
}
內部return
不是從DatabaseCategoriesToSelectList
中返回,而是從內部函數中返回。 但是,無論您做什么,都無法使其返回所需的值,因為$.getJSON
是異步調用。 你必須放一些東西
function(data, dll) {
...
var newjsn = runafter(ddl, jsn);
// put the rest of your stuff that uses newjsn here
}
在您的代碼中,然后將之后的所有內容也放入該函數中。
小提琴 ( 輸出為:16 )
您正在做的就應該很好
function getDouble (number){
var doubl = number+number;
return quadruple(doubl);
}
function quadruple(doubl){
var quad=doubl+doubl
return quad;
}
var num = 4;
var doub = getDouble(num);
您將無法訪問getJson處理程序的返回值。 框架調用該處理程序。 您正在給它一個函數,如果/當收到響應時,.getJson會調用該函數。 如果需要訪問runAfter的返回值,則需要執行計划執行的任何操作。
代替:
$.getJSON(GLOBALURL+'content/plugins/subcategories/getSubcategories.php',
function(data, ddl) {
...
return runafter(ddl, jsn);
});
}
您需要決定要使用該值做什么,例如,我可能將其填充到某個隱藏字段的值中:
$.getJSON(GLOBALURL+'content/plugins/subcategories/getSubcategories.php',
function(data, ddl) {
...
$('#someField').val( runafter(ddl, jsn) );
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.