【问题标题】:Not able to cancel REST(POST) request of AWS amplify in react无法在反应中取消 AWS 放大的 REST(POST)请求
【发布时间】:2021-01-04 13:48:20
【问题描述】:

我有以下代码 sn-p 使用 aws amplify api 生成 POST 请求。我将 API.post 承诺存储在 promiseToCancel 变量中。当用户点击取消按钮时,我正在调用 cancelRequest()。

promiseToCancel 变量的 promise 对象处于待处理状态,我将其传递给 API.cancel()。但是这个 api 请求没有被取消。而且我在控制台上也没有看到任何错误。

我使用的是 aws-amplify 版本 3.3.13。

import API from "@aws-amplify/api"

let promiseToCancel;

const post = (path, body, options) =>{
  try {
    ...
    ...
    promiseToCancel = API.post().then(()=>{

    }).catch(()=>{
  
    })
    ....
    ....

  }
  catch(){
    
  }
}

const cancelRequest = () => {
  API.cancel(promiseToCancel, 'request cancel message')
}

有人可以帮我确定这有什么问题吗?不确定,但我认为某些范围问题导致了这种行为。

【问题讨论】:

    标签: javascript reactjs amazon-web-services aws-amplify


    【解决方案1】:

    我改变了 API.post() 如下和它的工作。问题在于 promise 的编写方式以及我们正在存储参考。

    try {
    ...
    ...
    promiseToCancel = API.post();
    promiseToCancel.then(()=> {
    
    }).catch(()=>{
    
    })
    ....
    ....
    
    } catch(){
    
     }
    

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 2019-08-02
      • 2021-03-30
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 2022-01-26
      相关资源
      最近更新 更多