Я пытаюсь получить размеры изображения после его загрузки. Я получил URL из ответа API, создал экземпляр изображения и загрузку. Я хочу отправить действие GET_IMAGE_DIMENSIONS, передавая ширину изображения в качестве полезной нагрузки. Мой код ниже.
Однако, похоже, что из-за функции onload действие GET_IMAGE_DIMENSIONS выходит за рамки оригинальной области mergeMap, но я не уверен, как это исправить. Или проблема в другом?
const getImageDimensionsEpic = action$ =>
action$.ofType('UPLOAD_IMAGE_SUCCESS').pipe(
mergeMap(payload => {
let img = new Image();
img.src = payload.image_url;
img.onload = function() {
return Observable.of({
type: 'GET_IMAGE_DIMENSIONS',
img: img.width
});
};
})
);