@coze/taro-api
Version:
Official Coze Taro SDK for seamless AI integration into your applications | 扣子官方 Taro SDK,助您轻松集成 AI 能力到应用中
32 lines (31 loc) • 972 B
JavaScript
import { Events } from '@tarojs/taro';
export class AbortSignalPonyfill {
events = new Events();
aborted = false;
reason;
onabort(reason) {
this.aborted = true;
this.reason = reason;
this.events.trigger('abort');
}
addEventListener(_, cb) {
this.events.on('abort', cb);
}
removeEventListener(_, cb) {
this.events.off('abort', cb);
}
}
export class AbortControllerPonyfill {
signal = new AbortSignalPonyfill();
abort(reason) {
this.signal.onabort(reason);
}
}
// globalThis is undefined duriing initialization in Bytedance mini program
const supportAbortController = typeof (globalThis || window).AbortController === 'function';
export const AbortController = supportAbortController
? (globalThis || window).AbortController
: AbortControllerPonyfill;
export const AbortSignal = supportAbortController
? (globalThis || window).AbortSignal
: AbortSignalPonyfill;