typescript - 如何将 JSDoc 与通用打字稿一起使用?
问题描述
将 JSDoc 用于通用打字稿功能的最佳方法是什么。下面是我尝试过的东西,但我想有一个最好的方法,因为有一条信息说JSDoc types may be moved to TypeScript types.ts(80004)
我点击了“快速修复”,但这搞砸了功能。
/**
* @description execute in parallel promises by chunks
* @type <ReturnType> : the type of data to be returned
* @param arrayPromises : the array of promises to execute
* @param chunks : the value of chunks
* @returns : an array of returnType
*/
const runPromisesInParallelbyChunks = async <ReturnType>(
arrayPromises: Array<() => Promise<ReturnType>>,
chunks: number
): Promise<ReturnType[]> => {
const result: ReturnType[] = [];
let resu: ReturnType[] = [];
let cnt: number = 0;
const chain = async (
shrinkArray: Array<() => Promise<ReturnType>>
): Promise<ReturnType> => {
if (!shrinkArray.length) {
return new Promise<ReturnType>(resolve => resolve());
}
// console.log(shrinkArray.length);
const i: number = cnt++;
const res: ReturnType = await shrinkArray.shift()!();
await delayExecution(100);
// SAVE RESULT OF THE EXECUTION OF THE FUNCTION
result[i] = res;
return chain(shrinkArray);
};
const arrChains: Array<Promise<ReturnType>> = [];
while (chunks-- > 0 && arrayPromises.length > 0) {
arrChains.push(chain(arrayPromises));
}
// RESULT IS AN ARRAY OF THE RESULT OF EACH PROMISE
resu = await Promise.all(arrChains).then(() => result);
return resu;
};
解决方案
推荐阅读
- android - 始终将项目定位在回收站视图的顶部
- c# - 返回多个 MemoryStream 作为 HttpResponseMessage
- spring-boot - NumberFormatException 与 couchdb apache camel 集成
- kotlin - Kotlin:如何在没有 runBlocking 的情况下等待非挂起的协程?
- javascript - 在 2 个数组之间传递时,值变得未定义
- rest - Apache Camel - 通过骆驼休息调用外部服务
- kotlin - 减少流量的操作需要挂起功能
- php - 从联系表 7 中的电话中删除 +
- hardware - 通过插入套接字的硬件设备访问 Internet
- node.js - 在 Node 中使用“fs”,我将如何流式传输 CSV 文件?