Я разрабатываю компонент Angular2, который использует веб-камеру для привязки изображения к элементу холста и извлекает его как Blob
. В отдельности 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 нам больше не нужно иметь дело со всем этим?
Кто-нибудь знает, как обойти это?
Вау, это было быстро! Большое спасибо, что было именно то, что мне нужно. Думаю, пришло время пойти и узнать все об этой «зоне», о которой я слышал. – Martaver