Вызвать вложенный метод в vuejs - PullRequest
0 голосов
/ 31 октября 2019

В моем приложении vuejs у меня есть 2 метода. Если я напишу method1 следующим образом, он не запустится.

method1: function(param1, param2){
    // I can log param1 in here
    thirdLib.debounce(function(param1, params2){
        // It doesn't run into here
        // Do something
    }, 100)
},
method2: function(){
    this.method1(param1, param2);
}

Однако, если я поменяю method1 на это, он будет работать гладко:

method1: thirdLib.debounce(function(param1, params2){
            // Do something
        }, 100)

Интересно, почему это происходит? Если я хочу написать method1, как первый, как я могу это сделать? Моя версия vue 3.8.2

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Точно не зная, что такое ThirdLib, это происходит потому, что thirdLib.debounce () создает метод debounce, но не выполняет его. Итак, в вашем первом примере, где вы выполняете это? Ты не просто декларируешь и выбрасываешь. Но так как вы хотите, чтобы один и тот же экземпляр debounce вызывался каждый раз (именно так он знает, как отсеивать), я даже не думаю, что первый пример будет работать как debounce, если вы заставите его выполнить, потому что каждый вызов создаст новыйэкземпляр debounce.

Так что это действительно больше Javascript, а не Vue.

0 голосов
/ 31 октября 2019

это потому, что вам нужен обратный вызов в качестве параметров для thirdLib.debound. Код, который вы здесь показали, на самом деле определяет обратный вызов с двумя параметрами, вы назвали его одинаковым именем param1, param2.

Вам просто нужно написать другой метод как

method3: thirdLib.debound(param1, param2).... Затем вы передаете егокак

method1: function(param1, param2){ // I can log param1 in here this.method3(param1, param2); }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...