2013-10-31 56 views
0

所以我無法從模塊的構造函數返回一個值。 我從字面上不知道如何將值返回給構造函數。從纖維內部返回一個值(nodejs)

我希望代碼是不言自明的,我希望構造函數返回哈希變量。

var Fiber = require('fibers'); 
var Future = require('fibers/future'), wait = Future.wait; 

var fs = require('fs') 
var crypto = require('crypto') 



exports.cryptFile = function(fileName, callback){ 

    var crypt = crypto.createHash('md5'); 

    var stream = fs.ReadStream(fileName, { 
     bufferSize: 1024 * 1024 
    }); 


    stream.on('data', function(data) { 
     crypt.update(data) 
    }); 

    stream.on('error', function(err) { 
     callback(err); 
    }); 

    stream.on('end', function(){ 
     var digest = crypt.digest('hex') 
     callback(null, digest); 
    }); 



} 

var cryptFileFuture = Future.wrap(this.cryptFile); 


module.exports = function(filename){ 
    var future = new Future; 
    Fiber(function(){ 
     hash = cryptFileFuture(filename).wait(); 
     console.log(hash); 
     future.return(hash); 
    }); 
    return future; 
// return hash; 
} 
+0

我想你可能只是從光纖末端缺失。運行()。 https://github.com/laverdet/node-Fibers – Jake

回答

0

您忘記在.run()在光纖