&& 연산자나 || 연산자를 이렇게 true false 용도 외에 데이터 값을 받는 용도로 사용해도 문제가 없을까요?

반응형

 

대답: Yes. 원래 그런 용도이다.

 

 

 

 

여기서 RNIap.getAvailablePurchases(); 이걸 통해서 나온 purchase 에는 transactionReceipt 가 undefined 인 경우가 있다.

서버로 purchase 를 통으로 보내서 validation 하려다보니 purchase.transactionReceipt 가 undefined 로 없을 경우 dataAndroid 값을 받게 하려고 해서 receipt: purchase.transactionReceipt || purchase.dataAndroid 이렇게 하면 더 안정적인 코드가 될 것 같았다.

 

아마 옛날에 테스트 한 사항이라 RNIap.getAvailablePurchases(); 에 대한 정확한 의미를 몰라서 잘못 생각했을 수도 있다. 당시 테스트할 때 그냥 availablePurchases 들이 실제로 없는 상태였을 수도 있다. transactionReceipt 가 없는데 dataAndroid 만 있도록 코드가 작성되어 있지 않을 것 같은데... 어쩌면 그럴 수도 있다. 구매 요청을 한게 아니라 과거 값을 가져오는 개념이므로... 일단 과거에 테스트 했던 사항이라 이 부분에 대해서는 정확한 것은 아니다. 그러나 receipt: purchase.transactionReceipt || purchase.dataAndroid 이렇게 한다고 해서 오류나는 것도 아니고 실제로 이러하다면 이렇게 작성하는 것이 더 튼튼한 코드가 될 수 있다.

 

그리고 요즘은 react-native-iap 에서 RNIap.getAvailablePurchases(); 이것을 직접 사용하기 보다 updateListener 와 함께 RNIap.flushFailedPurchasesCachedAsPendingAndroid() 이런 것을 통해 과거 완료되지 않는 구매에 대한 처리를 한다. 그래도 구독과 같은 구매에 대해서는 RNIap.getAvailablePurchases(); 를 사용해야 할 듯 하다.

 

어찌되었건 && 와 || 연산자를 이런 용도로 믿고 사용해도 된다.

 

 

 

 

반응형

댓글

Designed by JB FACTORY