开发者问题收集

React - Native:可能未处理的承诺拒绝(id:120)

2020-06-26
405

我想问我的问题的解决方案。我有一个倒数计时器的代码。当我创建一个代码倒数计时器而不将变量存储到我的存储中时,它没有给我带来问题。但是,当我将用于存储计数器的代码添加到存储中时,我遇到了一个问题警告“可能未处理的承诺拒绝(id:120)”,并且这不会将值存储在变量计数器中。当计数器减少时,如何解决这个问题,并且每次计数器减少,它都会存储到我的存储中?这是我的代码

componentDidMount = async() =>{
    this.hitungMundur()
  }

  async hitungMundur(){
    let counter = 10

    const interval = setInterval(async() =>{
      console.log(counter)
      counter--

      await AsyncStorage.setItem('durasi', counter)
      if(counter < 0){
        clearInterval(interval)
        console.log('stoped')
      }
    }, 1000)
  }
2个回答

您应该将 await AsyncStorage.setItem('durasi', counter) 包装在 try 块内,如果承诺被拒绝,则包装 catch

 try { await AsyncStorage.setItem('durasi', counter) }
 catch (err) { console.log(err) }
Hagai Harari
2020-06-26

您只能在 AsyncStorage 中设置字符串值 请查看 此处 的文档>

await AsyncStorage.setItem('durasi', String(counter))

Azmat Ullah
2020-06-26