@Adel1ne

Как получить результат работы функции javascript?

Здравствуйте!

Что-то туплю и никак не могу сообразить.

Допустим у меня есть функция (из Open Api VK):
VK.Auth.getLoginStatus(function(response) {
        if (response.session) {
            /* Авторизованный в Open API пользователь */
            
        } else {
            /* Неавторизованный в Open API пользователь */

        }
    });
.
Как видно внутри функции можно прописать какие-то действия, в зависимости от результата (response).
Но проблема в том, что мне не нужно прописывать эти действия внутри функции. Нужно просто знать, как функция отработала и потом уже, при определенных действиях (например при клике на кнопке), выполнять какой либо код тем или иным способом.
Поскольку результат работы функции это не какой-то конкретный return, присвоить функцию переменной не получится.

Посоветуйте какой-нибудь просто способ получить результат работы функции?
  • Вопрос задан
  • 1070 просмотров
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Если функция выполняется синхронно, то вы можете просто внутри условий вставить return true; или return false;
Например:
function calc (a, b) {
    return a + b;
}

var result = calc(2, 2);
console.log(result) // 4


Если же функция асинхронная, как ваш пример скорее всего. То тут нельзя напрямую вернуть значение функции, можно только записать значения в какие-то переменные:
var auth;

VK.Auth.getLoginStatus(function(response) {
        if (response.session) {
            /* Авторизованный в Open API пользователь */
            auth = true;
            next();
        } else {
            /* Неавторизованный в Open API пользователь */
            auth = false;
            next();
        }
    });

// продолжаем работу
function next () {
    //...
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы