2017-12-22 25 views
0

私のAsyncStorageアイテムが空の場合、次の警告メッセージが表示されます"未処理のプロミス拒否(ID:0)の可能性があります"だから私の約束:拒絶?可能性のある未承諾の拒否(id:0)警告

マイコード:

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); 
     } 
    } 
あなたが約束を拒否するキャッチする必要
+1

'try' /'あなたが使用しない限り、約束では動作しませんcatch' 'await' 。 – Bergi

答えて

1

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); 
    }) 
} 
+0

"=>"でエラーが発生し、この ".catch(console.log( 'empty'))のように実装すると、出力されますが、同じ警告メッセージが表示され続けます –

+0

@ I'mnothumanシンプルな構文エラー、私は答えを更新しました – HMR

関連する問題