Я отправляю действие по загрузке видео. Действие должно запустить сагу, но оно не работает, как ожидалось. Иногда сага работает, иногда нет. Я не знаю, где именно тот случай, когда сага не будет слушать действие. Первая строка handleCompressAndUploadVideo
, где у нас есть консольный журнал, не выполняется. Я предполагаю, что всякий раз, когда я перезагружаю приложение, оно работает, но после этого последующие запросы на загрузку видео иногда не запускают сагу, но это не всегда так.
export function* handleCompressAndUploadVideo(action) {
console.log("-------------INSIDE ACTION")
const {
path,
options,
index,
apiData,
data,
draftVideoId,
videoId,
} = action.payload;
const userToken = yield call(getItemFromStorgae, 'usertoken');
const isConnected = yield call(checkInternet);
// yield call(compress, path, options);
const uri = path; //comdata && comdata.source ? comdata.source : path ? path : null;
const file = {
uri: uri,
name: `${index}.mp4`,
type: 'video/mp4',
};
const vId = data.data.data._id;
apiData.append('video', file);
apiData.append('videoId', vId);
let status;
console.log("isConnected: ", isConnected)
if (isConnected) {
try {
console.log("before api")
const response = yield call(
fetchapi,
'api/service/upload-video',
'post',
apiData,
userToken,
);
console.log("after api")
status = response.data.status;
if (response.data.status) {
yield put(Actions.uploadSuccess(index));
}
} finally {
console.log("here finally", status)
if (!status) {
yield put(Actions.setLoadingFalse(draftVideoId, videoId));
sweetalert('upload error', 'error');
}
}
} else {
yield put(Actions.setLoadingFalse(draftVideoId, videoId));
sweetalert('upload error', 'error');
}
}
function* MentorSaga() {
yield all([
yield takeLatest(ActionTypes.SET_LOADING_FALSE, uploadFailed),
yield takeLatest(
ActionTypes.COMPRESS_AND_UPLOAD_VIDEO,
handleCompressAndUploadVideo,
),
]);
}