React-native-iap: Advertencia de posible rechazo de la promesa no gestionada de la compraErrorListener

Creado en 4 sept. 2019  ·  4Comentarios  ·  Fuente: dooboolab/react-native-iap

Versión de react-native-iap

3.0.3

Versión de react-native

0.59.10

Plataformas en las que enfrentó el error (¿IOS o Android o ambos?)

Androide

Comportamiento esperado

Sin advertencia de promesa no manejada

Comportamiento real

09-03 16:42:41.214 20367 21085 I ReactNativeJS: 'purchaseErrorListener', { debugMessage: '', responseCode: 1 }
09-03 16:42:43.254 20367 21085 W ReactNativeJS: Possible Unhandled Promise Rejection (id: 0):
09-03 16:42:43.254 20367 21085 W ReactNativeJS: Error: Payment is Cancelled.
09-03 16:42:43.254 20367 21085 W ReactNativeJS: createErrorFromErrorData<strong i="14">@http</strong>://localhost:8081/index.delta?platform=android&dev=true&minify=false:2108:26
09-03 16:42:43.254 20367 21085 W ReactNativeJS: http://localhost:8081/index.delta?platform=android&dev=true&minify=false:2060:51
09-03 16:42:43.254 20367 21085 W ReactNativeJS: __invokeCallback<strong i="15">@http</strong>://localhost:8081/index.delta?platform=android&dev=true&minify=false:2627:23
09-03 16:42:43.254 20367 21085 W ReactNativeJS: http://localhost:8081/index.delta?platform=android&dev=true&minify=false:2358:34
09-03 16:42:43.254 20367 21085 W ReactNativeJS: __guard<strong i="16">@http</strong>://localhost:8081/index.delta?platform=android&dev=true&minify=false:2531:15
09-03 16:42:43.254 20367 21085 W ReactNativeJS: invokeCallbackAndReturnFlushedQueue<strong i="17">@http</strong>://localhost:8081/index.delta?platform=android&dev=true&minify=false:2357:21
09-03 16:42:43.254 20367 21085 W ReactNativeJS: invokeCallbackAndReturnFlushedQueue@[native code]

Entorno probado (¿Emulador? ¿Dispositivo real?)

Dispositivo real

Pasos para reproducir el comportamiento

Cree una aplicación de ejemplo en la rama 3.0.x. Ejecutar en el dispositivo, toque Get Products , luego toque Purchase android.test.canceled

🙏 help wanted 🚶🏻 stale 🤖 android

Comentario más útil

Según tengo entendido, sucede debido a esta línea: https://github.com/dooboolab/react-native-iap/blob/8d28d204857d65d99d764aa2a59f9bca1385859a/android/src/main/java/com/dooboolab/RNIap/RNIap#L506.ja utilizado en algunos otros lugares también.

No puedo entender por qué se llaman a estas funciones después de que se disparó el evento de error. Parece que aquí se utiliza una combinación de 2 enfoques.

La nueva promesa se crea en cada inicialización y luego se resuelve o rechaza según los resultados de la operación junto con el envío de eventos a través de DeviceEventManagerModule .

Pero como entendí por los documentos, la única forma de comunicación con la biblioteca es a través de eventos, las promesas ahora están en desuso.

Tal vez no obtengo algo correctamente, pero desde mi punto de vista, la biblioteca no debería rechazar las promesas al enviar eventos de error.

@hyochan ¿ Alguna otra idea? Estoy listo para contribuir, solo quiero entender que me estoy moviendo en la dirección correcta.

Todos 4 comentarios

Según tengo entendido, sucede debido a esta línea: https://github.com/dooboolab/react-native-iap/blob/8d28d204857d65d99d764aa2a59f9bca1385859a/android/src/main/java/com/dooboolab/RNIap/RNIap#L506.ja utilizado en algunos otros lugares también.

No puedo entender por qué se llaman a estas funciones después de que se disparó el evento de error. Parece que aquí se utiliza una combinación de 2 enfoques.

La nueva promesa se crea en cada inicialización y luego se resuelve o rechaza según los resultados de la operación junto con el envío de eventos a través de DeviceEventManagerModule .

Pero como entendí por los documentos, la única forma de comunicación con la biblioteca es a través de eventos, las promesas ahora están en desuso.

Tal vez no obtengo algo correctamente, pero desde mi punto de vista, la biblioteca no debería rechazar las promesas al enviar eventos de error.

@hyochan ¿ Alguna otra idea? Estoy listo para contribuir, solo quiero entender que me estoy moviendo en la dirección correcta.

@gaykov Tienes razón. Parece que esto es un efecto secundario en un esfuerzo por apoyar tanto event como promises . Esperando una mejora de su PR 🔨

Hola, parece que no ha habido actividad sobre este tema recientemente. ¿Se ha solucionado el problema o aún requiere la atención de la comunidad? Este problema puede cerrarse si no se produce más actividad. También puede etiquetar este problema como "Para discusión" o "Buen primer número" y lo dejaré abierto. Gracias por sus aportaciones.

Cerrando este problema después de un período prolongado de inactividad. Si este problema todavía está presente en la última versión, no dude en crear un nuevo problema con información actualizada.

¿Fue útil esta página
0 / 5 - 0 calificaciones