Skip to content

请求取消

在某些场景下(比如用户频繁切换页面、输入框防抖搜索),你可能需要取消正在进行中、尚未返回结果的网络请求。 SDK 完全兼容现代浏览器的 AbortSignal 标准协议。

你可以在任何接口的第二个参数(即 options 参数)中传入一个 signal

typescript
import { createLoongshipDataApi } from 'loongship-data';

const client = createLoongshipDataApi({ key: 'YOUR_KEY' });
const controller = new AbortController();

// 1. 发起请求,并将 controller.signal 传入 options
client.ship.search({ kw: 'COSCO' }, { signal: controller.signal })
  .then(data => {
    console.log('数据返回:', data);
  })
  .catch(error => {
    if (error.name === 'CanceledError') {
      console.log('请求已被手动取消');
    } else {
      console.error('其他错误:', error);
    }
  });

// 2. 当用户离开页面,或者你想中止请求时,调用 abort
// 此时上面的 Promise 会直接被 reject 一个 CanceledError
controller.abort();