Мы пытаемся вызвать асинхронный метод в нативном для реакции событии onHostDestroy LifeCycle . Мы создали класс, который обрабатывает регистрацию событий LifeCycle:
import {DeviceEventEmitter, EmitterSubscription} from "react-native";
const ON_HOST_DESTROY = "LifecycleEventModule.onHostDestroy";
export class LifecycleEventListener {
public static addOnHostDestroyListener(callback: () => void): EmitterSubscription {
return DeviceEventEmitter.addListener(ON_HOST_DESTROY, callback);
}
}
И мы используем метод addOnHostDestroyListener
следующим образом:
LifecycleEventListener.addOnHostDestroyListener(async () => {
debug("calling OnHostDestroy");
await HttpClient.request("https://example.com", {}).then(() => debug("something happened"))
debug("called OnHostDestroy");
});
В консоли отладчика следующее регистрируется:
calling OnHostDestroy
Requesting: https://example.com {}
Кажется, что уничтожение приложения происходит до завершения асинхронной операции. Есть ли способ заставить приложение ждать завершения асинхронной операции, прежде чем оно будет уничтожено?