Skip to content

Commit d0f6c19

Browse files
authored
♻️ 改良代码 - .load / .loadend (#1208)
1 parent b47f967 commit d0f6c19

File tree

6 files changed

+22
-15
lines changed

6 files changed

+22
-15
lines changed

src/app/service/content/gm_api/gm_xhr.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ export const toBlobURL = (a: GMApi, blob: Blob): Promise<string> | string => {
7171
export const blobToDataURL = (blob: Blob): Promise<string> => {
7272
return new Promise<string>((resolve, reject) => {
7373
const reader = new FileReader();
74-
reader.onload = () => resolve(reader.result as string);
74+
reader.onloadend = function () {
75+
resolve(<string>this.result);
76+
};
7577
reader.onerror = reject;
7678
reader.onabort = reject;
7779
reader.readAsDataURL(blob);

src/app/service/content/scripting.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,16 @@ export default class ScriptingRuntime {
8181
}
8282
case "CAT_fetchDocument": {
8383
const [url, isContent] = data.params;
84+
// 根据来源选择不同的消息桥(content / inject)
85+
let msg: CustomEventMessage | null = isContent ? this.senderToContent : this.senderToInject;
8486
return new Promise((resolve) => {
8587
const xhr = new XMLHttpRequest();
8688
xhr.responseType = "document";
8789
xhr.open("GET", url);
88-
xhr.onload = () => {
89-
// 根据来源选择不同的消息桥(content / inject)
90-
const msg = isContent ? this.senderToContent : this.senderToInject;
91-
const nodeId = msg.sendRelatedTarget(xhr.response);
90+
xhr.onloadend = function () {
91+
const nodeId = msg!.sendRelatedTarget(this.response);
9292
resolve(nodeId);
93+
msg = null;
9394
};
9495
xhr.send();
9596
});

src/app/service/service_worker/resource.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,8 @@ export class ResourceService {
241241
return new Promise((resolve) => {
242242
const reader = new FileReader();
243243
reader.readAsArrayBuffer(blob);
244-
reader.onloadend = () => {
245-
if (!reader.result) {
244+
reader.onloadend = function () {
245+
if (!this.result) {
246246
resolve({
247247
md5: "",
248248
sha1: "",
@@ -251,7 +251,7 @@ export class ResourceService {
251251
sha512: "",
252252
});
253253
} else {
254-
resolve(calculateHashFromArrayBuffer(<ArrayBuffer>reader.result));
254+
resolve(calculateHashFromArrayBuffer(<ArrayBuffer>this.result));
255255
}
256256
};
257257
});

src/pkg/utils/crypto.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ export function calculateMd5(blob: Blob) {
55
return new Promise<string>((resolve, reject) => {
66
const reader = new FileReader();
77
reader.readAsArrayBuffer(blob);
8-
reader.onloadend = () => {
9-
if (!reader.result) {
8+
reader.onloadend = function () {
9+
if (!this.result) {
1010
reject(new Error("result is null"));
1111
} else {
12-
const result = calculateMD5FromArrayBuffer(<ArrayBuffer>reader.result);
12+
const result = calculateMD5FromArrayBuffer(<ArrayBuffer>this.result);
1313
resolve(result);
1414
}
1515
};

src/pkg/utils/datatype.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ export const blobToUint8Array = async (blob: Blob): Promise<Uint8Array<ArrayBuff
55
if (typeof blob?.arrayBuffer === "function") return new Uint8Array(await blob.arrayBuffer());
66
return new Promise((resolve, reject) => {
77
const reader = new FileReader();
8-
reader.onload = () => {
9-
resolve(new Uint8Array(reader.result as ArrayBuffer));
8+
reader.onloadend = function () {
9+
resolve(new Uint8Array(this.result as ArrayBuffer));
1010
};
1111
reader.onerror = reject;
1212
reader.readAsArrayBuffer(blob);

src/pkg/utils/utils.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,9 @@ export const makeBlobURL = <T extends { blob: Blob; persistence: boolean }>(
327327
export function blobToBase64(blob: Blob): Promise<string> {
328328
return new Promise((resolve) => {
329329
const reader = new FileReader();
330-
reader.onloadend = () => resolve(<string>reader.result);
330+
reader.onloadend = function () {
331+
resolve(<string>this.result);
332+
};
331333
reader.readAsDataURL(blob);
332334
});
333335
}
@@ -336,7 +338,9 @@ export function blobToBase64(blob: Blob): Promise<string> {
336338
export function blobToText(blob: Blob): Promise<string | null> {
337339
return new Promise((resolve) => {
338340
const reader = new FileReader();
339-
reader.onloadend = () => resolve(<string | null>reader.result);
341+
reader.onloadend = function () {
342+
resolve(<string>this.result);
343+
};
340344
reader.readAsText(blob);
341345
});
342346
}

0 commit comments

Comments
 (0)