将 Autorest 与打字稿一起使用时,如何取消正在进行的客户请求?

How do you cancel ongoing client request when using Autorest with typescript?

在将 Autorest 与打字稿一起使用时,有没有办法中止正在进行的客户端请求?

我注意到 ServiceClient 对象能够指定 RequestPrepareOptions,但我不清楚如何将请求选项传递给传出请求方法。或者也许还有其他方法可以取消?

看来你可以使用浏览器abortController mechanism。您必须创建一个中止信号:

The AbortController interface represents a controller object that allows you to abort one or more Web requests as and when desired.

var controller = new AbortController();
var signal = controller.signal;

...

然后在OperationArguments.options.abortSignal调用的时候传入

function sendOperationRequest<T>(operationArguments: OperationArguments, operationSpec: OperationSpec)

然后调用 aborton 然后 abortController :

abortBtn.addEventListener('click', function() {
  controller.abort();
  console.log('Download aborted');
});

...sendOperationRequest 返回的承诺将被 abortError.

拒绝

参见提供的 javascript 示例:https://mdn.github.io/dom-examples/abort-api/

注意:该功能被标记为 实验性,因此可能并非所有浏览器都支持它。