3.0.3
0.59.10
アンドロイド
未処理の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
タッチします
私が理解しているように、それはこの行が原因で発生します: //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その通りです。 これは、 event
とpromises
両方をサポートするための副作用のようです。 あなたのPR
からの改善を望んでいます🔨
ねえ、最近この問題に関する活動はなかったようです。 問題は修正されましたか、それともコミュニティの注意が必要ですか? それ以上のアクティビティが発生しない場合、この問題は解決される可能性があります。 この問題に「ディスカッション用」または「良い最初の問題」というラベルを付けることもできます。開いたままにしておきます。 貢献していただきありがとうございます。
長期間使用されなかった後、この問題を解決します。 この問題が最新リリースでも引き続き発生する場合は、最新の情報を使用して新しい問題を作成してください。
最も参考になるコメント
私が理解しているように、それはこの行が原因で発生します: //github.com/dooboolab/react-native-iap/blob/8d28d204857d65d99d764aa2a59f9bca1385859a/android/src/main/java/com/dooboolab/RNIap/RNIapModule.java#L506他のいくつかの場所でも使用されています。
エラーイベントが発生した後にこの関数が呼び出される理由がわかりません。 ここで使用されている2つのアプローチの組み合わせがあるようです。
新しいpromiseは初期化ごとに作成され、操作結果に応じて解決または拒否され、
DeviceEventManagerModule
介してイベントが送信されます。しかし、ドキュメントから理解したように、ライブラリと通信する唯一の方法はイベントを介することであり、promiseは現在非推奨になっています。
何かが正しく得られないかもしれませんが、私の観点からは、ライブラリはエラーイベントを送信するときにpromiseを拒否するべきではありません。
@hyochan他に何かアイデアはありますか? 私は貢献する準備ができています。正しい方向に進んでいることを理解したいだけです。