gpt4 book ai didi

javascript - JS 函数不返回 return

转载 作者:行者123 更新时间:2023-12-02 18:58:07 25 4
gpt4 key购买 nike

我有以下功能:

function anfahrtskosten()
{
var xmlhttp;
var entfernung=0;
var anfahrtskostenergebnis=0;
var anfahrtskostenergebnis1=0;
var plz=document.modhochzeitskalk.plz.value;
//aus den Parametern
var anfahrtskosten=1;

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
entfernung = xmlhttp.responseText;
if (entfernung > 100 && entfernung < 2000) {
anfahrtskostenergebnis1 = anfahrtskosten * entfernung;
} else {
anfahrtskostenergebnis1 = 0;
}
anfahrtskostenergebnis = Math.round(anfahrtskostenergebnis1);
document.getElementById("anfahrtskostenergebnis").innerHTML=anfahrtskostenergebnis+",00 &euro;";
}
xmlhttp.open("GET","/modules/mod_hochzeitskalk/ogdb_remote.php?plzstart=10245&plzend="+plz,true);
xmlhttp.send();
return anfahrtskostenergebnis;
}

我想在另一个函数中使用存储在 var anfahrtskostenergebnis 中的数字,我尝试了这样的操作:

var gesamtkosten = anfahrtskosten() + videokosten() + filmkosten() + fotokosten() + extrakosten();

但是不起作用,我做错了什么?

最佳答案

由于您正在使用 AJAX,因此在 AJAX 调用返回之前您无法继续处理。该调用是异步的,这意味着程序流程继续,并且 AJAX 调用在并行线程中运行。

这样做很有意义,因为替代方法是停止所有脚本事件,同时等待缓慢的网络流量传递结果。

您需要重新构建程序以使用回调函数,这些函数在通过 AJAX 返回值之后调用。

这应该可以帮助您开始,但我怀疑您将不得不对添加在一起的其他函数执行类似的操作,并以某种方式跟踪已收集的值,一旦它们全部收集完毕就运行最终回调已检索。

function anfahrtskosten(){
var xmlhttp;

... your original code here...

anfahrtskostenergebnis = Math.round(anfahrtskostenergebnis1);

// call the callback here, with the value you retrieved
callback(anfahrtskostenergebnis); // <~~~~
document.getElementById("anfahrtskostenergebnis").innerHTML=anfahrtskostenergebnis+",00 &euro;";
}
xmlhttp.open("GET","/modules/mod_hochzeitskalk/ogdb_remote.php?plzstart=10245&plzend="+plz,true);
xmlhttp.send();
}

var callback = function(anfahrtskosten){
var gesamtkosten = anfahrtskosten + videokosten() + filmkosten() + fotokosten() + extrakosten();
// do something with cost...
}

关于javascript - JS 函数不返回 return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15114200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com