MooTools - вернуть переменную onSuccess в родительскую функцию - PullRequest
1 голос
/ 11 августа 2011

Помогите мне, пожалуйста!: (

Как я могу вернуть строку, просто используя 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 Ответ

1 голос
/ 11 августа 2011

Проблема здесь в том, что 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);
...