感谢ponury-kostek我解决了我的一半问题。最初的顺序功能已经起作用。现在我只有一个周期的麻烦。Node.js与APDU的异步请求
这里我需要按顺序读取6个连续数据块。我需要做6个请求改变一个参数,偏移量(每次增加一个)。假设我得到了ABCDEF格式的数据,每个数据都是258个字节的数据组。我想按照这个顺序读取它并将其存储在一个变量或文件中。
由于函数是异步我得到AEFDBC或ABFDEC或...
console.log("---get bin "+offset+"---")
可我也使其与承诺的工作?
代码:
function getBinPromise(){
var foffset = 0x00;
var i = 0;
for(i=0; i<6;){
getBinChunkPromise(foffset).then(i++)
foffset = foffset + 0x01;
}
}
function getBinChunkPromise(offset){
return new Promise(function(resolve, reject) {
GetBinApdu = new
Buffer([0x00, 0xB0, offset, 0x00, 0x00]);
reader.transmit(GetBinApdu, 258, protocol, function (err, data) {
if(err){
console.log(err);
reject(err);
} else {
console.log("---get bin "+offset+"---")
console.log('Data received:', data);
console.log('Last two:', data[data.length-2], data[data.length-1]);
fs.appendFileSync("data.txt", data);
console.log("------");
resolve(data);
}
})
})
}
很抱歉,如果这是个白痴,我是新与JS
你可以添加序列号到APDU? – ThingyWotsit
@ThingyWotsit我不这么认为。我使用这个模块的传输功能https://github.com/santigimeno/node-pcsclite – jm8FE
你有一个关于你的代码的问题,那么你必须告诉我们你的代码。 **“(我认为这是因为它调用了传输函数,在我正在进行数据存储的地方有一个回调函数。”**所以*显示*我们然后我们会告诉你问题出在哪里。它绝对可以用promise来解决,但我们不介意你知道的读者;我们不能猜测你有什么代码。 – ippi