与Highland.js的异步映射

时间:2015-04-28 09:19:41

标签: javascript stream functional-programming highland.js

我有一个Highland流,定期从服务器获取数据。我需要在地图内部进行数据库查找。在Highland的任何一个变形金刚中,我都找不到任何异步的提法。

2 个答案:

答案 0 :(得分:2)

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

d = int(input("1 - to enter expression; 2 - to enter text; 3 - to exit. "))

答案 1 :(得分:1)

使用.map后,您可以使用.sequence作为:

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);
});

Fiddle here

.parallel并行:

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);
});

Fiddle here