JavaScript eventListener не выходит, когда окно закрыто, значения добавляются из каждого окна - PullRequest
0 голосов
/ 05 августа 2020

У меня есть приложение, которое при вводе имени ТА открывает новое всплывающее окно, в котором показаны курсы, которые принимает ТА. Когда я закрываю окно и ввожу новое имя, курсы предыдущего студента добавляются в таблицу курсов. Я делаю расширение кода VS.

Мой JavaScript прослушиватель событий дублирует значения. Я думал, что если eventListener находится внутри окна, он закроется, когда окно закроется. Похоже, этого не происходит. Это часть моего кода:

// obtain response
window.addEventListener('message', event =>  {
    var message = event.data; 
                        
// check enrollment list 
    switch (message.command) {
        case 'enroll':
        var enrollment = message.enrollment;
        makeTaTable(enrollment); 
      }
});
// obtain a list of the enrolled modules and add them to the table 
        vscode.postMessage({command: 'enrollmentData'});

screen.webview.onDidReceiveMessage(message => {switch(message.command){case 'enrollmentData': this.enrolled(); 
    return;}}, undefined, context.subscriptions);
this.enrolled = function enrolled () {
// obtain list of enrolled modules (if any) 
    for (var i in this.modulesList.TAs){
        var enrolledList = this.modulesList.TAs[i].userName;
        if (enrolledList == this.user){
                var modEnrolled = this.modulesList.TAs[i].enrolled; 
                console.log('sending enrollment info: ' + modEnrolled);
                screen.webview.postMessage({command: 'enroll', enrollment: modEnrolled}); 
        break; 
          }
        }
    };

Все что угодно поможет.

...