gpt4 book ai didi

javascript - reactjs - 中断 superagent 中的发布请求

转载 作者:行者123 更新时间:2023-11-29 17:50:41 24 4
gpt4 key购买 nike

我正在尝试计算文件上传的进度,所以我使用了 Superagent .我能够获得文件上传的进度。

现在,当用户选择取消按钮时,我需要中断或取消发布请求。有什么办法可以做到这一点。以下是我的代码:

var file = somefile.pdf
Request.post('http://posttestserver.com/post.php?dir=example')
.set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
.send(file)
.on('progress', function(e) {
console.log('Progress', e.percent);
})
.end((err, res) => {
console.log(err);
console.log(res);
})

最佳答案

经过一番研究,我找到了如何中断取消中止一个superagent request .以下代码将起作用:

var file = somefile.pdf
var req = Request.post('http://posttestserver.com/post.php?dir=example')
.set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
.send(file)
.on('progress', function(e) {
if (condition) {
req.abort() // to cancel the request
}
console.log('Progress', e.percent);
})
.end((err, res) => {
console.log(err);
console.log(res);
})

Additional information from their docs

.abort()

应该中止请求

var req = request
.get(uri + '/delay/3000')
.end(function(err, res){
try {
assert(false, 'should not complete the request');
} catch(e) { done(e); }
});
req.on('error', function(error){
done(error);
});
req.on('abort', done);
setTimeout(function() {
req.abort();
}, 500);

应该允许多次链接 .abort()

var req = request
.get(uri + '/delay/3000')
.end(function(err, res){
try {
assert(false, 'should not complete the request');
} catch(e) { done(e); }
});
// This also verifies only a single 'done' event is emitted
req.on('abort', done);
setTimeout(function() {
req.abort().abort().abort();
}, 1000);

关于javascript - reactjs - 中断 superagent 中的发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44119175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com