gpt4 book ai didi

javascript - bacon.js "splitting"一个事件包含一个数组,每个元素分成多个事件

转载 作者:行者123 更新时间:2023-11-29 18:14:32 25 4
gpt4 key购买 nike

我最近发现了 Bacon.js 并一直在修补但遇到了一个问题。

我有一个事件流 results 用于最近从 AJAX 请求返回的 GitHub 用户。每个结果事件都是一个用户对象数组,例如,[{ id: 1, login: 'somlor' }, { id: 2, login: 'raimohanska' }, ...]

问题:我想创建一个新的 users 事件流,它从结果事件中获取数据并将实际用户对象作为单个事件返回。这可能吗?

这是我的结果流代码,它按预期工作:

// get some recent github users
var ajaxStream = function() {
var randomOffset = Math.floor(Math.random() * 500);
var url = 'https://api.github.com/users?since=' + randomOffset;
return Bacon.fromPromise($.ajax(url));
}

// refresh click stream, start as true to trigger initial ajax call
var refresh = $('a.refresh').asEventStream('click')
.map(true)
.startWith(true);

// latest results stream. each event is an array of user objects.
var results = refresh.flatMapLatest(ajaxStream);

这不起作用。它为每个 results 数组创建一个事件流。我希望它将每个 results 数组“拆分”为该数组中每个用户对象的新事件。

// stream of individual users created from each result event array
var users = results.map(function(e) { return new Bacon.fromArray(e); });

有什么想法吗?

谢谢,
肖恩

更新:
这就是我要找的:

var users = results.flatMap(Bacon.fromArray);

最佳答案

如果我正确理解问题,您需要使用 .flatMap 来创建流。

results.flatMap(Bacon.fromArray).onValue(function(v){ console.log(v) });

关于javascript - bacon.js "splitting"一个事件包含一个数组,每个元素分成多个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24579119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com