Recibo el siguiente mensaje de advertencia cuando mi AsyncStorage Elemento está vacío «Posible no Controlada Promesa de Rechazo (id:0)» Así que mi pregunta es: ¿Cómo puedo manejar una promesa rechazo?

Mi código:

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);
        }
    }
  • try/catch no funciona en las promesas a menos que utilice await.

1 Comentario

  1. 3

    Necesita coger el rechazo de la promesa:

    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);
      })
    }
    • Tengo un error en «=>» y cuando puedo implementar algo como esto «.catch(consola.log («vacío»))» imprime pero me sigue dando el mismo mensaje de advertencia
    • Simple error de sintaxis, he actualizado la respuesta

Dejar respuesta

Please enter your comment!
Please enter your name here