等待函数在JS

时间:2017-07-10 08:37:13

标签: javascript

大家。

我想知道如何让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的行也会被执行,打印我也“未定义”。

0 个答案:

没有答案