React Native(Android)可能未处理的Promise拒绝错误

问题描述 投票:0回答:1

我正在尝试将帖子请求发送到谷歌api进行文本检测。但首先我必须拍一张照片然后我可以用axios发送这张照片google api。

以下代码用于拍照。

takePictureAndCreateAlbum = async () => {
    let uri = this.camera.takePictureAsync({
      base64: true
    }).then(data => {
        this.sendVisionOCR(data)
    }).catch(err => {
      console.log("err", err)}
      )
   const asset = await MediaLibrary.createAssetAsync(uri);
   console.log('asset', asset);
   MediaLibrary.createAlbumAsync('Expo', asset)
     .then(() => {
       Alert.alert('Album created!')
     })
     .catch(error => {
       Alert.alert('An Error Occurred!')
     });
    };
}

以下代码用于发送请求google api。

sendVisionOCR(data){
      let body = {
        "requests":[
          {
            "image":{
              "content": data
            },
            "features": [
                  {
                    "type": "DOCUMENT_TEXT_DETECTION",
                    "maxResults": 1
                  }
                ]
          }
        ]
      }
axios.post('https://vision.googleapis.com/v1/images:annotate?key=xxXXxx', body)
      .then((response) => {
        console.log("worked", response)

      })
      .catch((err) => console.log("err", err))
}

当我运行我的代码时,我收到了这些错误;

可能的未处理承诺拒绝(id:0):

错误:参数“localUri”无效。它必须是一个字符串!

但有时如果我改变我的代码一小部分,我看到无限循环。它正在尝试发送base64文件。

"axios": "^0.18.0",
"expo": "^31.0.2",
"react": "16.5.0",

而且我也试图获取操作。它不工作?

有什么问题?为什么axios不工作?

reactjs react-native axios github-api expo
1个回答
0
投票

我找到了解决方案。实际上我的代码是正确的。还有一个问题。当我运行代码时,编码图像base64格式需要很长时间,有时似乎只能工作。有new问题。

© www.soinside.com 2019 - 2024. All rights reserved.