Nodejs使用循环进行异步调用

时间:2016-06-06 12:54:11

标签: node.js asynchronous

我必须通过api检查包含更多字符串的字符串,我使用请求模块获取请求。在完成所有请求之后,api请求存储在一个数组中,我使用回调来发送准备好的列表。但我从for循环中得到空列表。我哪里错了?请告诉我。

Object.defineProperty(Object.prototype, "extends", {
        "enumerable": false,
        "value" : function(constructor) {

                /*Inheriting enumerable statick method and paramether
                from the super class */
                Object.keys( constructor ).forEach( function(key) {
                        this[key]= constructor[key];
                }.bind(this));

                /*Classic Javascript inheritance*/
                this.prototype= Object.create( constructor.prototype, {
                            "constructor": {
                                    "value": this,
                                    "configurable": true
                            }
                });             

                this.__super__= constructor;

        }

});

1 个答案:

答案 0 :(得分:1)

request函数将数据放入回调中的semantic_list。 直到请求返回之后才会执行回调(从计算机的角度来看很长一段时间)。其余代码已经完成运行,包括在任何数据有机会进入callback之前调用semantic_list函数。

您最好的选择是使用众多模块中的一个来帮助您运行多个并行操作。两个不错但又非常不同的选择包括async.jsbluebird.js