我想在如下所示的两个并发方法调用之间共享数据。
async generateSuggestedSparks(userId: GraphID, friends: Person[], latLng: LatLng) {
let suggestions = await this.generateAndMergeListsInParallel([
this.generateHardCodedSparks(userId, friends, latLng),
this.generateRandomActivitySparks(userId, friends, latLng, 6),
]);
suggestions = this.filterDuplicateSuggestions(suggestions);
return suggestions.slice(0, 7);
}
async generateAndMergeListsInParallel<T>(promises: Promise<T[]>[]): Promise<T[]> {
let lists = await Promise.all(promises);
return lists.flat();
}
每种方法都会为随机选择的朋友子集生成许多工件。在这两种方法中,我都会从好友列表中删除选定的好友,以避免多次选择同一个好友。我想概括这一逻辑,以在两个并发承诺之间共享数据,以避免一个选择另一个已在另一个中使用的朋友。
在 NodeJS 中并发运行的方法之间共享数据的规范方法是什么?
JavaScript 是一种单线程语言,它本身不支持或处理并行请求。您将不得不使用其他一些框架来进行并行处理。即使有承诺,方法也会一一执行。