别着急,坐和放宽
使用社交账号登录
这个小功能是在给 https://github.com/HengXin666/BiLiBiLi_DanMu_Crawling 写前端弹幕处理的时候搓出来的,用来解决大文件导入后整个页面卡死的问题。
export default function sync2async<T extends (...args: any) => any>(
func: Function,
...args: any[]
): Promise<ReturnType<T>> {
return new Promise((resolve) => {
setTimeout(() => resolve(func(...args)), 0);
});
}
如果想要确保类型安全的话,把第一行两个any改成unknown即可。
await sync2async(函数, ...原函数的参数)
// 定义一个测试函数
function test(a: string, b: number) {
return a + b
}
await sync2async(test, '参数1', 2) // -> any/unknown
await sync2async<typeof test>(test, '参数1', 2) // -> test函数的返回值类型
将该class调用方法封装至一个无变量输入的函数即可。
await sync2async(() => test_class.methodA())