2025-07-08
let cancel = false;
const canceler = () => {
cancel = true;
};
void (async () => {
for (const favorite of favorites) {
if (cancel) {
break;
}
try {
const channel = await fetchChannel(favorite.channelID);
channelMap.set(favorite.channelID, channel ? channel : "NOT_FOUND");
} catch {
channelMap.set(favorite.channelID, "ERROR");
}
sortFavorites();
}
})();
return canceler;
-
if (cancel) {
が always falsy と言われる
- VSCode の型表示でも cancel:boolean ではなく、cancel: false と表示される
- 以下のように object にしたらクリアできた
- あと let cancel = 0; のように number にしてもセーフだった
- 原因は深追いできてない
const status = { cancel: false };
const canceler = () => {
status.cancel = true;
};
void (async () => {
for (const favorite of favorites) {
if (status.cancel) {
break;
}
try {
const channel = await fetchChannel(favorite.channelID);
channelMap.set(favorite.channelID, channel ? channel : "NOT_FOUND");
} catch {
channelMap.set(favorite.channelID, "ERROR");
}
sortFavorites();
}
})();
return canceler;
Top comments (0)