Я работал над приложением React Native с управлением состоянием Redux. В этом приложении синхронизация происходит каждую 1 минуту. Я нажимаю 10 вызовов API каждый раз. Недавно я заметил, что приложение зависает в приложении Android на следующих условиях. 1. При подключении к мобильным данным. 2. При исходе из фона. 3. И когда syn c API срабатывает.
Когда эти 3 сценария ios происходят все вместе, приложение останавливается на несколько секунд.
function* syncAPICalls(action, sample = undefined) {
let sampleData = settings;
try {
yield* makeDevicesCall({});
yield* makeDashboardNotificationCall({});
if (isValidElement(sampleData)) {
sampleData = sample;
} else {
sampleData = yield call(sampleApiCall1);
}
yield* sampleFunc1({ param: param});
yield* sampleFunc2({ param: param});
yield* sampleFunc3({ param: param});
yield* sampleFunc4({ param: param});
yield* sampleFunc5({ param: param});
yield* sampleFunc6({ param: param});
let phoneNo;
if (isValidElement(phone)) {
phoneNo = phone;
} else {
let sampleData2 = yield call(sampleApiCall2);
phoneNo = sampleData2.contact_no;
}
yield* sampleFunc7({ param: param});
yield* sampleFunc8({ param: param});
} catch (e) {
if (__DEV__) {
console.log(e);
}
}
}
Я переименовал все как образец. Каждый sampleFunction
будет обновлять редуктор, используя put
метод.
Когда я удалял операции Syn c, приложение работает более плавно, а когда передний план также синхронизируется c.
Только при поступлении из фона мобильные данные синхронизируются c.
Я могу вас заверить, что syn c вызывает только один раз. И все API получают успешный ответ.
Verison
react-native-cli: 2.0.1
react-native: 0.59.9
Я что-то не так делаю ?. Пожалуйста, дайте мне несколько идей о том, что пошло не так, спасибо.