无法理解我尝试使用的特定脚本中的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();
答案 0 :(得分:0)
这里只是一个猜测 - 你在这里遇到的最可能的问题是函数client.hget
和cryptsy.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);
});
但是考虑到节点的标准方式,你很可能正在处理异步函数,所以上面的第一个例子很可能是你正在寻找的。 p>