React-native-iap: PurchaseErrorListenerからの未処理のPromise拒否の可能性に関する警告

作成日 2019年09月04日  ·  4コメント  ·  ソース: dooboolab/react-native-iap

react-native-iapのバージョン

3.0.3

react-nativeのバージョン

0.59.10

エラーに直面したプラットフォーム(IOSまたはAndroid、あるいはその両方?)

アンドロイド

予想される行動

未処理のpromise警告はありません

実際の動作

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]

テストされた環境(エミュレーター?実デバイス?)

実デバイス

動作を再現する手順

3.0.xブランチでサンプルアプリをビルドします。 デバイスで実行し、 Get Productsをタッチしてから、 Purchase android.test.canceledタッチします

🙏 help wanted 🚶🏻 stale 🤖 android

最も参考になるコメント

私が理解しているように、それはこの行が原因で発生します//github.com/dooboolab/react-native-iap/blob/8d28d204857d65d99d764aa2a59f9bca1385859a/android/src/main/java/com/dooboolab/RNIap/RNIapModule.java#L506他のいくつかの場所でも使用されています。

エラーイベントが発生した後にこの関数が呼び出される理由がわかりません。 ここで使用されている2つのアプローチの組み合わせがあるようです。

新しいpromiseは初期化ごとに作成され、操作結果に応じて解決または拒否され、 DeviceEventManagerModule介してイベントが送信されます。

しかし、ドキュメントから理解したように、ライブラリと通信する唯一の方法はイベントを介することであり、promiseは現在非推奨になっています。

何かが正しく得られないかもしれませんが、私の観点からは、ライブラリはエラーイベントを送信するときにpromiseを拒否するべきではありません。

@hyochan他に何かアイデアはありますか? 私は貢献する準備ができています。正しい方向に進んでいることを理解したいだけです。

全てのコメント4件

私が理解しているように、それはこの行が原因で発生します//github.com/dooboolab/react-native-iap/blob/8d28d204857d65d99d764aa2a59f9bca1385859a/android/src/main/java/com/dooboolab/RNIap/RNIapModule.java#L506他のいくつかの場所でも使用されています。

エラーイベントが発生した後にこの関数が呼び出される理由がわかりません。 ここで使用されている2つのアプローチの組み合わせがあるようです。

新しいpromiseは初期化ごとに作成され、操作結果に応じて解決または拒否され、 DeviceEventManagerModule介してイベントが送信されます。

しかし、ドキュメントから理解したように、ライブラリと通信する唯一の方法はイベントを介することであり、promiseは現在非推奨になっています。

何かが正しく得られないかもしれませんが、私の観点からは、ライブラリはエラーイベントを送信するときにpromiseを拒否するべきではありません。

@hyochan他に何かアイデアはありますか? 私は貢献する準備ができています。正しい方向に進んでいることを理解したいだけです。

@gaykovその通りです。 これは、 eventpromises両方をサポートするための副作用のようです。 あなたのPRからの改善を望んでいます🔨

ねえ、最近この問題に関する活動はなかったようです。 問題は修正されましたか、それともコミュニティの注意が必要ですか? それ以上のアクティビティが発生しない場合、この問題は解決される可能性があります。 この問題に「ディスカッション用」または「良い最初の問題」というラベルを付けることもできます。開いたままにしておきます。 貢献していただきありがとうございます。

長期間使用されなかった後、この問題を解決します。 この問題が最新リリースでも引き続き発生する場合は、最新の情報を使用して新しい問題を作成してください。

このページは役に立ちましたか?
0 / 5 - 0 評価