【发布时间】:2021-07-28 02:17:34
【问题描述】:
我想在 Typescript 中按克隆对我的 Github 存储库进行排序
纯js中的等价物是
repos.sort(async (a, b) => {
(await insights.traffic.clones(user, b.name, username, password)).uniques -
(await insights.traffic.clones(user, a.name, username, password)).uniques;
});
但是Array.prototype.sort() 不适用于 async/await
repos 是 https://api.github.com/users/<user>/reposinsights 是 import * as insights from 'github-insights' Docs for clones
这会将存储库按降序排序为唯一克隆
它将获取我帐户的每个 repo,然后使用 https://api.github.com/repos/<user>/<repo>/traffic/clones 对其进行排序
有没有办法让它工作?
使用fast-sort
我想出了这个
const sorted = sort(repos).desc([
async (u) => await (await insights.traffic.clones(user, u.name, username, password)).uniques
]);
但这根本没有排序,它只是repos
【问题讨论】:
-
尝试首先获取所有信息,将其放入数组中并然后排序。
-
埃弗特所说的。每个元素都会多次调用排序委托,因此无论如何您都不需要
async排序委托。 -
@Evert 但是我必须手动管理所有存储库和相应克隆之间的连接,并且必须为每个存储库获取它。有什么高效便捷的方法吗?
-
@kaaaxcreators 如果“手动管理连接”是指使用数组创建一个简单的数据结构,那么是的.. 这样做。这是简单的方法。我将把它作为伪代码作为答案
标签: typescript sorting asynchronous async-await github-api