#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(){
}