【问题标题】:Returning a value from inside Fibers(nodejs)从 Fibers(nodejs) 内部返回一个值
【发布时间】:2013-11-11 14:28:29
【问题描述】:

所以我在尝试从该模块的构造函数返回值时遇到了麻烦。 我真的不知道如何将值返回给构造函数。

我希望代码是不言自明的,我希望构造函数返回散列变量。

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

【问题讨论】:

标签: node.js node-fibers


【解决方案1】:

你忘记了光纤上的.run()

【讨论】:

    猜你喜欢
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2019-02-02
    • 1970-01-01
    • 2023-03-10
    • 2018-08-09
    相关资源
    最近更新 更多