mirror of
https://github.com/zhigang1992/react-native-firebase.git
synced 2026-05-03 14:35:02 +08:00
Make sure the promise is resolved/rejected for transaction
Right now the following code will be broken:
```
async function() {
await ref.transaction(
function(foo) {
// deal with foo
},
function(error, committed, ss) {
// additional work on complete callback
},
true
);
// NOTE: Code from here will never execute because promise above never gets resolved
}
```
v2 is not returning at the point of calling onComplete, v3 code does
This commit is contained in:
@@ -195,8 +195,11 @@ export default class Reference extends ReferenceBase {
|
||||
return new Promise((resolve, reject) => {
|
||||
const onCompleteWrapper = (error, committed, snapshotData) => {
|
||||
if (isFunction(onComplete)) {
|
||||
if (error) return onComplete(error, committed, null);
|
||||
return onComplete(null, committed, new Snapshot(this, snapshotData));
|
||||
if (error) {
|
||||
onComplete(error, committed, null);
|
||||
} else {
|
||||
onComplete(null, committed, new Snapshot(this, snapshotData));
|
||||
}
|
||||
}
|
||||
|
||||
if (error) return reject(error);
|
||||
|
||||
Reference in New Issue
Block a user