Попытка вызова API для получения некоторых данных после входа пользователя и сохранения в индексированной базе данных.Но рабочий код вызывается до того, как произойдет вход, т. Е. После запуска приложения оно завершает свою работу.
app-worker.js
import Api from "./api/index";
import { openDb, addToStore, closeDb } from "./indexedDB";
self.onmessage = (oEvent) => {
Api().get("person").then((results) => {
openDb();
addToStore({
storeName: "persons",
data: results,
});
closeDb();
});
};
workerfile.js
import Worker from "./app-worker.js";
let workerObj = null;
export function startWorker() {
workerObj = new Worker();
workerObj.postMessage();
}
export function stopWorker() {
workerObj.terminate();
}
actionfile.js
import { startWorker } from "../workerfile";
export const login = (user, history) => async (dispatch) => {
dispatch({ type: LOGIN_USER });
Api().post("login", user)
.then((result) => {
dispatch({
type: LOGIN_USER_SUCCESS,
payload: result.user
});
history.push("/home");
startWorker();
})
.catch((err) => {
dispatch({
type: LOGIN_USER_FAILURE,
});
});
};
Требование - вход пользователя в систему -> разрешить работнику работать, пока он не получит данные изAPI и сохранить в базе данных -> остановить работника