Files
NapCatQQ/.pnpm-store/v3/files/fc/e5ced968fac443371469479bc94b301fe98b2c0334ef0cfe2d968cc9590e602f1a7c5701f26ff91afca0784ccecf07f00512d55c9e0136bba35c4758a9e645
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

45 lines
1.6 KiB
Plaintext

import { __awaiter, __generator } from "tslib";
import { useEffect } from 'react';
import { isFunction } from '../utils';
function isAsyncGenerator(val) {
return isFunction(val[Symbol.asyncIterator]);
}
function useAsyncEffect(effect, deps) {
useEffect(function () {
var e = effect();
var cancelled = false;
function execute() {
return __awaiter(this, void 0, void 0, function () {
var result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!isAsyncGenerator(e)) return [3 /*break*/, 4];
_a.label = 1;
case 1:
if (!true) return [3 /*break*/, 3];
return [4 /*yield*/, e.next()];
case 2:
result = _a.sent();
if (result.done || cancelled) {
return [3 /*break*/, 3];
}
return [3 /*break*/, 1];
case 3: return [3 /*break*/, 6];
case 4: return [4 /*yield*/, e];
case 5:
_a.sent();
_a.label = 6;
case 6: return [2 /*return*/];
}
});
});
}
execute();
return function () {
cancelled = true;
};
}, deps);
}
export default useAsyncEffect;