Sunday, May 19, 2024
190
rated 0 times [  192] [ 2]  / answers: 1 / hits: 34188  / 7 Years ago, fri, december 22, 2017, 12:00:00

I am getting the following warning message when my AsyncStorage Item is empty Possible Unhandled Promise Rejection (id:0) So my question is: How can I handle a promise rejection?



My code:



componentDidMount() {
try {
// This warning only appears when 'connections' item is empty
AsyncStorage.getItem('connections').then((token) => {
token = JSON.parse(token);

const getSectionData = (dataBlob, sectionId) => dataBlob[sectionId];
const getRowData = (dataBlob, sectionId, rowId) => dataBlob[`${rowId}`];

const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2,
sectionHeaderHasChanged: (s1, s2) => s1 !== s2,
getSectionData,
getRowData,
});

const {dataBlob, sectionIds, rowIds} = this.formatData(token);

this.setState({
dataSource: ds.cloneWithRowsAndSections(dataBlob, sectionIds, rowIds),
});
});
}catch(error) {
console.log(error);
}
}

More From » react-native

 Answers
1

You need to catch the reject of the promise:



componentDidMount() {
// This warning only appears when 'connections' item is empty
return AsyncStorage.getItem('connections').then((token) => {
token = JSON.parse(token);

const getSectionData = (dataBlob, sectionId) => dataBlob[sectionId];
const getRowData = (dataBlob, sectionId, rowId) => dataBlob[`${rowId}`];

const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2,
sectionHeaderHasChanged: (s1, s2) => s1 !== s2,
getSectionData,
getRowData,
});

const { dataBlob, sectionIds, rowIds } = this.formatData(token);

this.setState({
dataSource: ds.cloneWithRowsAndSections(dataBlob, sectionIds, rowIds),
});
}).catch(error => {
console.log(error);
})
}

[#55610] Tuesday, December 19, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
masonm

Total Points: 167
Total Questions: 87
Total Answers: 103

Location: Rwanda
Member since Wed, Jun 8, 2022
2 Years ago
masonm questions
;