VUEJS вызывает функцию в функции (axios)

#function #vue.js #axios

#функция #vue.js #axios

Вопрос:

Когда я вызываю this.func1() в func2, func1 возвращает undefined . Кто-нибудь, пожалуйста, помогите мне? Я думаю, что функция ничего не возвращает, потому что axios не завершен, как я могу это исправить?

 func1:function(val){
if(val.x == 0)
{
    axios.post('/...', {

    })
    .then((response) => {
        if(response.data == 0)
        {
            return true;
        }
        else
        {
            return false
        }
    })
    .catch((error) => {
        return false;
    });
}
else
{
    return false;
}
}

//////
//////
//////


func2:function(variable){
    console.log(this.func1(variable)) // undefined..
    if(this.func1(variable) == true)
    {

    }
}
  

Комментарии:

1. function1 является асинхронной функцией.

Ответ №1:

как насчет того, чтобы вместо этого добавить function 2 внутреннюю функцию 1 для вызова синхронизации.

 func2:function(variable){
    console.log(this.func1(variable)) // undefined..


   func1:function(val){
if(val.x == 0)
{
    axios.post('/...', {

    })
    .then((response) => {
        if(response.data == 0)
        {
            return true;
        }
        else
        {
            return false
        }
    })
    .catch((error) => {
        return false;
    });
}
else
{
    return false;
}

}
}
  

Комментарии:

1. Невозможно в моем случае

2. func2 вызывается из DOM для элемента с element.io (пользовательский интерфейс) «em-выпадающий список» с атрибутом «command=»func2»

3. итак, что именно вы хотите проверить func1 func2 ?

4. func2(переменная) содержит «переменную», но перед выполнением следующего из func2, func1 проверяет, можно ли изменить эту «переменную»

5. таким образом, вы должны вызывать func1 inside func2 и любой возврат для func2 должен быть внутри func1