@megalo/api
Version:
重新封装各个端中的API,由 megalo 统一对外抛出方法名。目前微信小程序端提供的 API 最为丰富,所以 API 名称以微信小程序为准。
36 lines (31 loc) • 664 B
JavaScript
export default class CancelToken {
constructor(executor) {
if (typeof executor !== 'function') {
throw new TypeError('executor must be a function.');
}
let resolvePromise;
this.promise = new Promise(resolve => {
resolvePromise = resolve;
});
let token = this;
executor(message => {
if (token.reason) {
return;
}
token.reason = {
message,
};
resolvePromise(token.reason);
});
}
static source() {
let cancel;
let token = new CancelToken(c => {
cancel = c;
});
return {
token,
cancel,
};
}
}