React Native: Ошибка вызова JSTimers.CallTimers - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь запустить свое приложение на Android (One plus 6t).Это работало нормально до вызова firebase, но как только я добавляю строку onSend={Fire.shared.send} в Chat.js, приложение вылетает.Журналы просто показывают Uncaught Error: Ошибка вызова JSTimers.CallTimers .Больше нигде не видел этой ошибки.Кто-нибудь знает в чем проблема?

Вот закуска: https://snack.expo.io/@adititipnis/community

1 Ответ

0 голосов
/ 11 августа 2019

Вы можете получить эту ошибку, если пропустите вызов await при отправке объектов JS на нативную сторону, поэтому обещание будет передано, а не результат.

Я использую типичный шаблон асинхронного сна, который оборачиваетсяsetTimeout, так что это может также повлиять на то, как эта ошибка проявляется, я не совсем уверен.

Это не проверено, но что-то подобное должно воспроизвести это:

// some async func
const asyncGetResult = async () => {
    await sleep(17);
    // etc.
    return Promise.resolve(result);
};    

// this should cause the error:
MyNativeComponent.nativeMethod({
    result: asyncFunc() // <- missing 'await'
});

// this should not cause the error:
MyNativeComponent.nativeMethod({
    result: await asyncFunc()
});

Это может быть трудно отследить, если вы не знаете, что ищете.Я прибегал к процессу устранения, возвращая изменения файл за файлом, пока не нашел ошибочную строку.Надеюсь, это сэкономит кому-то время.

...