如何使用Javascript对象?

时间:2015-03-02 05:43:19

标签: javascript jquery redis

无法理解我尝试使用的特定脚本中的javascript对象。如果有人能指出我正确的方向,这将是伟大的。请了解我对javascript的新功能。并尝试在编码时学习。所以它可能不是最漂亮的。

var Cryptsy = require('cryptsy');
    redis = require('redis');
    client = redis.createClient()

var cryptsy = new Cryptsy('key', 'secret');

var obj = new Number(obj);

client.hget("Pool_Stats:CurrentShift:WorkerBTC", "Total", function (err, obj) {
    console.dir(obj);
    var obj = new Number(obj);
});

cryptsy.api('makewithdrawal', { address: '13WjD67H382MU8AqA6FyAU5VaKyXzQ35Kr', amount: 'obj' }, function (err, data) {
    console.log(data);
    console.log(err);
});


client.quit();

1 个答案:

答案 0 :(得分:0)

这里只是一个猜测 - 你在这里遇到的最可能的问题是函数client.hgetcryptsy.api是异步的 - 而不是阻塞。通过重新安排代码以便cryptsy.api调用从client.hget的回调函数内部运行,您可以在另一个之后执行:

client.hget("Pool_Stats:CurrentShift:WorkerBTC", "Total", function (err, obj) {
    console.dir(obj);
    var obj = new Number(obj);

    cryptsy.api('makewithdrawal', { address: '13WjD67H382MU8AqA6FyAU5VaKyXzQ35Kr', amount: obj }, function (err, data) {
        console.log(data);
        console.log(err);
    });

    client.quit();
});

或者,如果这些是阻塞函数(或至少client.hget是),您可以在根作用域中创建一个变量,在client.hget回调函数中为其赋值,然后使用该更新的值以下电话:

var obj;
client.hget("Pool_Stats:CurrentShift:WorkerBTC", "Total", function (err, obj) {
    console.dir(obj);
    obj = new Number(obj);
});

cryptsy.api('makewithdrawal', { address: '13WjD67H382MU8AqA6FyAU5VaKyXzQ35Kr', amount: 'obj' }, function (err, data) {
    console.log(data);
    console.log(err);
});

但是考虑到节点的标准方式,你很可能正在处理异步函数,所以上面的第一个例子很可能是你正在寻找的。