MooTools - 在父函数中返回onSuccess变量

时间:2011-08-11 14:47:50

标签: javascript variables mootools xmlhttprequest scope

请帮帮我! :(

如何通过使用getValue()返回字符串?我不知道如何将变量应用到父函数中。我头疼得厉害:

<script>
    function getValue() {
        new Request.JSON({
            data: JSON.encode({
                "serviceName": "demoTest",
                "methodName": "someValue",
                "parameters": []
            }),
            onSuccess: function(data) { // data = a string with some text
                var string = data;
                console.log(string); // returns the string as expected
            },
            url: "gateway/?contentType=application/json"
        }).send();

        return string; // returns undefined
    }
</script>

1 个答案:

答案 0 :(得分:1)

这里的问题是return在触发onSuccess(回调)函数之前很久就被触发了。一种方法是使用回调函数。你想要的方式是行不通的。

这是你的getValue函数:

function setValue(callback) {
    new Request.JSON({
     ...
        onSuccess: function(data) {
            callback(data);
        },
    ....
}

这是一个回调函数:

var myCallback = function(data) {
    $("id").set("html", "<p>" + data + "</p>");
}

最后调用加载文档的函数:

setValue(myCallback);