redis - node.js合并回调数据问题
伊谢尔伦
伊谢尔伦 2017-04-17 11:42:16
[Node.js讨论组]
client.get('str_key_0', function(error, res){
            if(error) {
                console.log(error);
            } 
        });
client.get('str_key_1', function(error, res){
            if(error) {
                console.log(error);
            } 

        });


我如何合将2个res合并到一起呢?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(4)
PHP中文网

Q 这个组件挺好的

巴扎黑

我觉得这篇文章http://nya.io/Node-js/promise-in-nodejs-get-rid-of-callback-hell/提到的Promise/A+方法可以解决你的问题。
写出来的代码或许是这样子的:
首先需要自己制作Promise的API,然后传入Q.all中。

var Q = require('q');
function clientGet(key, callback) {
    var deferred = Q.defer();
    client.get(key, function(err, data) {
        if(err) {
            deferred.reject(err);
        } else {
            deferred.resolve(data);
        }
    });
    return defered.promise.nodeify(callback);
}

Q.all([
    clientGet('str_key_0'),
    clientGet('str_key_1')
    ])
    .then(function(dataArray){
    for(var i = 0; i < dataArray.length; i++){
      console.log(dataArray[i]);
    }
    }, function(err){
    console.log(err);
    });
迷茫

利用 https://www.npmjs.com/package/event-emitter 或者 https://www.npmjs.com/package/async 或者 promise都可以解决你的问题

怪我咯

不知道你要找的是不是这个
express批量请求合并中间件multifetch

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号