无法在反应中取消 AWS 放大的 REST(POST)请求
Not able to cancel REST(POST) request of AWS amplify in react
我有以下代码片段,它使用 aws amplify api 生成 POST 请求。我将 API.post promise 存储在 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')
}
有人可以帮我确定这是什么问题吗?不确定,但我认为某些范围问题导致了此行为。
我如下更改了 API.post() 及其工作原理。问题在于 promise 的编写方式以及我们正在存储引用。
try {
...
...
promiseToCancel = API.post();
promiseToCancel.then(()=> {
}).catch(()=>{
})
....
....
} catch(){
}
我有以下代码片段,它使用 aws amplify api 生成 POST 请求。我将 API.post promise 存储在 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')
}
有人可以帮我确定这是什么问题吗?不确定,但我认为某些范围问题导致了此行为。
我如下更改了 API.post() 及其工作原理。问题在于 promise 的编写方式以及我们正在存储引用。
try {
...
...
promiseToCancel = API.post();
promiseToCancel.then(()=> {
}).catch(()=>{
})
....
....
} catch(){
}