1

アプリケーションでウェブカメラを使用しています。アクセスするには、webcam.js ( https://pixlcore.com/ ) を使用しました。しかし、Eclipseで開くと、次のようなエラーが表示されます: Syntax error on token "catch", Identifier expected. 小さなコードスニペット:

            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);
            });

その理由と解決方法は?

4

1 に答える 1

3

問題は明らかにそれcatch予約済みのキーワードであるため、コードチェッカーはこれをエラーと見なします。ただし、コード チェッカーは実際には間違っておりcatch、有効なメソッド呼び出しでもあります。つまり、IE の場合は古いバージョンでない限りです。

以前のバージョンの IE では、このコードは/のcatch外側が無効であると想定するこの問題もあったため、失敗します。この問題は IE9 または IE10 で修正されたと思いますが、よくわかりません。trycatch

catchとにかく、ブラケット プロパティ アクセスを持つ文字列を使用することで、古い IE とこの一般的な問題を伴う他の問題の両方でこの問題を回避できます。

// ...
.then( function(stream) {
    // ...
})
['catch']( function(err) { 
    // ...
});
于 2016-06-02T04:57:19.517 に答える