2016-06-02 3 views
1

In einer Anwendung verwende ich Webcam. Um darauf zuzugreifen, habe ich webcam.js (https://pixlcore.com/) verwendet. Aber als ich es in der Eclipse geöffnet habe, zeigt es einen Fehler an: Syntax error on token "catch", Identifier expected. kleines Code-Snippet:Was ist der Fehler in .catch in webcam.js Datei

  var self = this; 
      this.mediaDevices.getUserMedia({ 
       "audio": false, 
       "video": this.params.constraints || { 
        mandatory: { 
         minWidth: this.params.dest_width, 
         minHeight: this.params.dest_height 
        } 
       } 
      }) 
      .then(function(stream) { 
       // got access, attach stream to video 
       video.src = window.URL.createObjectURL(stream) || stream; 
       self.stream = stream; 
       self.loaded = true; 
       self.live = true; 
       self.dispatch('load'); 
       self.dispatch('live'); 
       self.flip(); 
      }) 
      .catch(function(err) { //here shows error 
       return self.dispatch('error', "Could not access webcam: " + err.name + ": " + err.message, err); 
      }); 

Was ist der Grund und wie man es löst?

+0

Ich denke, das ist das gleiche Problem wie in http : //stackoverflow.com/questions/33385950/eclipse-mars-javascript-validator-on-angular-services. –

Antwort

2

Das Problem ist anscheinend, dass catch ein reserved keyword ist, und daher denkt Ihr Code-Checker, dass dies ein Fehler ist. Ihr Code-Checker ist jedoch tatsächlich falsch, und catch ist auch ein gültiger Methodenaufruf. Das heißt, es sei denn, Sie sind eine ältere Version als IE.

In älteren Versionen von IE, wird dieser Code fehlschlagen, weil es auch dieses Problem hatte, wo angenommen wurde, dass catch außerhalb einer try/catch ungültig war. Ich glaube, dieses Problem wurde entweder in IE9 oder IE10 behoben, nicht sicher.

Wie auch immer, können Sie für alte IE und anderen Dinge mit dieser allgemeinen Frage, um dieses Problem umgehen, indem catch in einem String mit Halterung Eigenschaft Zugang:

// ... 
.then(function(stream) { 
    // ... 
}) 
['catch'](function(err) { 
    // ... 
}); 
+0

Danke das funktioniert! Ich benutze ECMAScript 3, also denke ich, dass es nicht validiert hat. – Joe