大家。
我想知道如何让JS等到我的函数完成后再使用它的重新编译值。
我习惯这样做:
function printHelloWorld(){
var x = myHolyFunction("Hello");
console.log(x);
}
function myHolyFunction(y){
z = y + "World";
return z;
}
但我目前的问题是myHolyFunction
收到一个参数,将其发送给PHP,并且必须等到PHP发送答案。我知道如何等待PHP(由ajax的.done
帮助),但在那一刻,console.log
行(来自printHello)已执行打印undefined
。
重点是我在printHelloWorld
中处理了很多变量,我不能简单地做到这一点:
function printHelloWorld(){
var x = myHolyFunction("Hello");
if(typeof(x) != undefined){
console.log(x);
}else{
setTimeOut(printHelloWorld, 100);
}
}
感谢您的帮助:)
-----几乎可以确定无关的信息----
查看其他主题我发现了一些关于“回调”的内容(我不是专业程序员)我试过这样的事情:
function printHelloWorld(){
var i = "!";
myHolyFunction("Hello", function(j){console.log(j);});
var k = j + i;
console.log(k);//I would thank a "HelloWorld!" right here
}
function myHolyFunction(y, callback){
z = y + "World";
return callback(z);
}
但它没有解决问题有两个原因:1)j
保留在函数内部,我已经读过全局变量不是最好的选择,2)它甚至没有等待..但是同时执行。我的意思是,即使我使用全局变量,目前它从myHolyFunction
获取值,我声明k
的行也会被执行,打印我也“未定义”。