1
Webカメラを使用して画像をキャンバス要素にスナップし、Blob
として抽出するAngular2コンポーネントを開発しています。別に、Blob
とイベントは正常に動作しますが、toBlob
のコールバック関数からイベントを送出しようとすると、そのイベントはリスナーのために発生しなくなります。Angular2 EventEmitterがコールバックで放出されたときにイベントを発生させない
これは動作します:
var self = this;
self.gotSnapshot.emit({}); //Raises the gotSnapshot event correctly.
this.canvas.toBlob(function(blob){
console.log(blob); //Logs the blob to console correctly.
});
これはしていません:
var self = this;
this.canvas.toBlob(function(blob){
self.gotSnapshot.emit(blob); //Event is never raised for listeners
});
私はtoBlob
が非同期で実行されているからだと確信しています。 Angular1では、私の本能は$ timeoutとcall applyを行うことになりますが、私はEventEmitterに対してこれ以上対処する必要はないと考えました。
誰もがこの問題を回避する方法を知っていますか?
ワウの
() =>
を使用する場合ます。また
self
を必要としない、それは速かったです!どうもありがとうございました。私はそれが私が聞いてきたこの 'ゾーン'のことについてすべてを学ぶべき時だと思う。 – Martaver