react-собственная асинхронная функция не сработала после перезагрузки

#react-native #async-await #es6-promise #reload

Вопрос:

Я столкнулся с действительно странной проблемой в react-native при моделировании iOS, следующая асинхронная функция работает нормально после первой сборки, если я перезагрузлюсь, то, похоже, функция ожидания была заморожена. Если я удалю приложение и восстановлю его снова, то оно будет работать нормально

 const processPayment = async (amount: number) =gt; {  console.log("start fetching")   const data = await new Promise((resolve, reject) =gt; {  setTimeout(() =gt; {  resolve({ item: 10 })  }, 1000)  })   console.log(data)  console.log("end fetching")  }  

журнал консоли перед перезагрузкой может запускаться несколько раз

 LOG start fetching  LOG {"item": 10}  LOG end fetching  

журнал консоли после перезагрузки

 LOG start fetching  

Вызывающая функция

 lt;TouchableOpacity onPress={() =gt; {processPayment(100)}}gt;  lt;Text style={styles.keypad}gt;PAYlt;/Textgt; lt;/TouchableOpacity  

Комментарии:

1. можете ли вы также показать код, в котором вы вызываете функцию processPayment

2. @adhinarayan Я обновил процесс вызова в посте

3. является ли «перезагрузка» реальной перезагрузкой или горячей перезагрузкой? При горячей перезагрузке возникает множество проблем со статическими и асинхронными функциями. Если вы повторно запустите приложение из Xcode, это не должно быть проблемой. На самом деле это не проблема для окончательного приложения, так как в нем не будет горячей перезагрузки, смешивающей все.

4. @Christian под перезагрузкой означает, что я нажал «r» в окне метро. Как бы вы сделали настоящую перезагрузку?

5. @DanielNguyen тогда я понятия не имею

Ответ №1:

Я использовал шаблон ignite react native и отключил компонент сборника рассказов, проблема, похоже, исчезла.

Комментарии:

1. Обобщите решение, описанное в ссылке. Ссылки могут стать недоступными позже