Не удается отменить запрос REST (POST) AWS amplify в react

#javascript #reactjs #amazon-web-services #aws-amplify

#javascript #reactjs #amazon-веб-сервисы #aws-amplify

Вопрос:

У меня есть следующий фрагмент кода, который генерирует POST-запрос с использованием aws amplify api. Я сохраняю обещание 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')
}
 

может кто-нибудь, пожалуйста, помочь мне определить, что с этим не так? Не уверен, но я думаю, что причиной такого поведения является какая-то проблема с областью действия.

Ответ №1:

Я изменил API.post(), как показано ниже, и он работает. Проблема заключалась в том, как было написано promise, и мы сохраняем ссылку.

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

}).catch(()=>{

})
....
....

} catch(){

 }