首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角7取消HTTP请求在Core中没有反映

角7取消HTTP请求在Core中没有反映
EN

Stack Overflow用户
提问于 2020-02-18 21:17:54
回答 1查看 294关注 0票数 1

我有一个DotNet Core2.2API端点,它接受CancellationToken并在处理过程中定期检查它。当我从角7前端调用端点时,然后取消请求(取消订阅),取消令牌不会反映取消状态。为了正确地取消令牌,我是否遗漏了一个步骤?或者这不是现在的请求取消过程有效吗?

请注意,我可以看到初始请求火,api正在工作,以及请求取消(通过Chrome网络选项卡)。

角7

代码语言:javascript
复制
private sub: Subscription;
doWork(): void {
  // calls to http client, sending a POST
  this.sub = this.service.doWork([1,2,3,4]).subscribe();
}
cancelWork(): void {
  if(this.sub && !this.sub.closed) {
    this.sub.unsubscribe();
  }
}

API

代码语言:javascript
复制
[HttpPost("DoWork")]
public async Task<ActionResult<HttpResponseMessage>> DoWork([FromBody] List<int> ids, CancellationToken cancellationToken)
{
    foreach(var id in ids)
    {
        // ---> cancellationToken.IsCancellationRequested is always false   <-------
        cancellationToken.ThrowIfCancellationRequested();

        await doLongRunningTask(id);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-02-18 22:32:13

如果请求在评估这一行时被取消,那么cancellationToken.ThrowIfCancellationRequested();就会抛出,因此在您的情况下它就不能工作了。通常,一些异步实用程序提供了用于传递它们将在内部使用的令牌的APIs。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60289605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档