Можно ли вызвать асинхронный метод в событии LifeCycle onHostDestroy, поддерживающем реакцию? - PullRequest
0 голосов
/ 29 мая 2020

Мы пытаемся вызвать асинхронный метод в нативном для реакции событии 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 {}

Кажется, что уничтожение приложения происходит до завершения асинхронной операции. Есть ли способ заставить приложение ждать завершения асинхронной операции, прежде чем оно будет уничтожено?

...