Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在模块模式中初始化_Node.js_Async.js - Fatal编程技术网

Node.js 如何在模块模式中初始化

Node.js 如何在模块模式中初始化,node.js,async.js,Node.js,Async.js,如何初始化全局模块作用域的async.queue? 下面的示例显示了主要问题,qq未定义、未知或仅在函数范围内局部定义 目标是访问不同模块成员函数中的“模块全局”q。 因此,在中创建示例的模块模式版本 我知道为什么//不起作用-代码是无效的,它只是显示了我尝试过的声明想法 另外,我知道如何使用不同的模式来解决问题,但这并不能回答问题 var mymodule = (function() { 'use strict'; var async = require('async');

如何初始化全局模块作用域的async.queue? 下面的示例显示了主要问题,
qq
未定义、未知或仅在函数范围内局部定义

目标是访问不同模块成员函数中的“模块全局”
q
。 因此,在中创建示例的模块模式版本

我知道为什么
//不起作用
-代码是无效的,它只是显示了我尝试过的声明想法

另外,我知道如何使用不同的模式来解决问题,但这并不能回答问题

 var mymodule = (function() {
    'use strict';

    var async = require('async');
    // var  q = async.queue(mymodule.qq); // not working 
    // var q ; // not working 
    var mymodule = {

        // q = async.queue(this.qq); // not working
        init: function() {
            // var q = async.queue(this.qq); // local not global
            // q = async.queue(this.qq); // not working
            q.drain = function() {
                console.log('all items have been processed');
            }
        },

        add: function(task) {
            this.q.push(task);
        },

        qq: function(task, callback) {
            console.log(task);
            callback();
        },

    };
    return mymodule;
 }());

我不知道从模块中分离异步如何帮助初始化队列,或者我找不到类似var q=async.queue(mymodule.qq)的东西。还有一个主要的想法没有实现“将所有内容都保持在模块范围内”
'use strict';
var async = require('async');
var mymodule = function(){

//This will be you constructor
//You can do something like this
  this.queue = async.queue(function(task, callback){
    console.dir(task);
  }, 4);
};
//Now start adding your methods
mymodule.prototype.add = function(task){
  this.queue.push(task, function(){});
};

mymodule.prototype.qq = function(task, callback){
// ..
callback()
};
//export it

module.exports = mymodule;