나는 RxJS를 사용하고 있고 redux-observable입니다.redux-observable에서 비동기 함수를 처리하는 방법은 무엇입니까?
나는 서사시로 파일을 읽으려고합니다. 제 경우에는 서사시에서해야합니다. 왜냐하면 어떤 다른 서사시는 expand
연산자로이 서사시적인 "알려지지 않은"시간을 트리거하기 때문입니다.
그러나 FileReader가 비동기이기 때문에 아래 코드는 작동하지 않습니다.
RxJS의 올바른 처리 방법은 무엇입니까? 감사합니다
export const uploadAttachmentEpic = (action$, store) =>
action$
.ofType(UPLOAD_ATTACHMENT)
.map(action => {
const reader = new FileReader();
reader.onload =() => {
return {
...action,
payload: {
...action.payload,
base64: reader.result
}
}
};
reader.readAsDataURL(action.payload.file);
})
.mergeMap(action =>
ajax
.post(/* use action.payload.base64 */)
.map(uploadAttachmentSucceed)
.catch(uploadAttachmentFailed)
);
개인적으로 홀 관찰자와 FileReader를 건너 뛰고 동기식으로 더 빠르고 빠르지 않고 [FormData] (https://developer.mozilla.org/en-US/docs/Web/API/FormData)를 사용하면됩니다. 서버가 바이너리 (멀티 파트 업로드)를 처리 할 수 있다면 33 % 더 큰 페이로드 – Endless
@ 끝내 주신 제안에 감사드립니다. 나중에 FormData를 확실히 조사하겠습니다! –