使用 Autorest 和 typescript 时如何取消正在进行的客户端请求?
Posted
技术标签:
【中文标题】使用 Autorest 和 typescript 时如何取消正在进行的客户端请求?【英文标题】:How do you cancel ongoing client request when using Autorest with typescript? 【发布时间】:2021-12-18 08:40:29 【问题描述】:在使用 Autorest 和 typescript 时,有没有办法中止正在进行的客户端请求?
我注意到ServiceClient
对象可以指定RequestPrepareOptions
,但我不清楚如何将请求选项传递给传出请求方法。或者也许还有其他方法可以取消?
【问题讨论】:
也许您可以添加一些代码来举例说明您想要做什么,以及您已经尝试过什么。 【参考方案1】:看来你可以使用浏览器abortController mechanism。您必须创建一个中止信号:
AbortController 接口表示一个控制器对象,允许您在需要时中止一个或多个 Web 请求。
var controller = new AbortController(); var signal = controller.signal;
...
然后调用时传入OperationArguments.options.abortSignal
function sendOperationRequest<T>(operationArguments: OperationArguments, operationSpec: OperationSpec)
然后调用 abort
on 然后 abortController :
abortBtn.addEventListener('click', function()
controller.abort();
console.log('Download aborted');
);
...sendOperationRequest
返回的承诺将被 abortError
拒绝。
查看提供的 javascript 示例:https://mdn.github.io/dom-examples/abort-api/
注意:该功能标记为实验性,因此可能并非所有浏览器都支持。
【讨论】:
以上是关于使用 Autorest 和 typescript 时如何取消正在进行的客户端请求?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 JWT 在 Autorest 生成的 SDK 中工作? (ASP.NET 核心 2.0)
Autorest 生成需要 beta 包的 Client Sdk