首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Highland.js的异步映射

基于Highland.js的异步映射
EN

Stack Overflow用户
提问于 2015-04-28 09:19:40
回答 2查看 712关注 0票数 5

我有一个高地流,它定期从服务器获取数据。我需要在地图中做数据库查找。在高地的任何变压器上,我都找不到任何异步操作的地方。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-28 09:41:48

您可以使用consume以异步方式处理流。

代码语言:javascript
复制
_([1, 2, 3, 4]).consume(function(err, item, push, next) {
  // Do fancy async thing
  setImmediate(function() {
    // Push the number onto the new stream
    push(null, item);

    // Consume the next item
    next();
  });
})).toArray(function(items) {
  console.log(items); // [1, 2, 3, 4]
});
票数 3
EN

Stack Overflow用户

发布于 2015-04-28 09:42:13

在使用.map之后,您可以将.sequence用作:

代码语言:javascript
复制
var delay = _.wrapCallback(function delay(num, cb){
    setTimeout(function(){ cb(null, num+1); }, 1000);
});

_([1,2,3,4,5]).map(function(num){
    return delay(num);
}).sequence().toArray(function(arr){ // runs one by one here
    console.log("Got xs!", arr);
});

小提琴在这里

或与.parallel并行:

代码语言:javascript
复制
var delay = _.wrapCallback(function delay(num, cb){
    setTimeout(function(){ cb(null, num+1); }, 1000);
});

_([1,2,3,4,5]).map(function(num){
    console.log("got here", num);
    return delay(num);
}).parallel(10).toArray(function(arr){ // 10 at a time
    console.log("Got xs!", arr);
});

小提琴在这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29915323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档