-4

在我的脚本中,我有一个对 php 文件的 ajax 调用,我希望在执行下面的其余脚本之前完成调用

这是我指的脚本:

function game_settings(state){
    if(state == "load"){
        ui.load_game();

        //do ajax call to load user last save
        var dataString = {"user_data": "true"};
        $.ajax({
           type:"POST",
            url:"PHP/class.ajax.php",
            data: dataString,
            dataType: 'JSON',
            success: function(success) {
                    player_details_init(success)
            },
            error: function(){
                alert("ERROR in User data");
            }
        });

        console.log (player_level);
        //scene.load("level_"+level);

        //instantiate a heroObject
        player = new Player(20,20,game_width, game_height);
        // set it's image to the proper src URL
        player.image.src = "images/Mage_Sprite.png";
        // once the image has completed loading, render it to the screen
        player.image.onload = function()
        {
            player.render();
        };

        lastUpdate = Date.now();
    }

所以例如现在当脚本运行时,我可以在控制台中看到 ajax 请求被发出,然后脚本的其余部分在 ajax 完成之前执行,从而导致此调用:

console.log (player_level);

返回 undefined 而不是应该返回的值,因为 ajax 尚未完成。

为了澄清我的问题是:

我应该如何在脚本的其余部分得到处理之前完成 ajax 调用?

谢谢

4

2 回答 2

4

将“脚本的其余部分”放在成功回调函数中。

于 2013-04-10T16:56:57.467 回答
1

您可以将脚本的其余部分放在 AJAX 调用的成功回调中,或者将asyncAJAX 调用配置的属性设置为 false,这将使其同步。

于 2013-04-10T16:57:39.280 回答