ponury-kostekのおかげで私は私の問題の半分を解決しました。最初の順次関数は既に機能しています。今私はサイクルで悩んでいるだけです。APDUを使用したNode.jsの非同期要求
ここでは、順番に6つの連続したデータを読み取る必要があります。私は6つの要求を1つのパラメータ、オフセット(毎回1つずつ増加する)を変更する必要があります。
データをABCDEFの形式で取得したとしましょう。各データは258バイトのチャンクです。私はその順序でそれを読んで、それを変数またはファイルに格納したいと思います。
私もそれが約束して動作させることができます関数は、非同期Iは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);
}
})
})
}
申し訳ありませんが、これは馬鹿であれば、私はあなたがtransmit
コールバック関数内resolve
/reject
に必要なJS
あなたはAPDUにシーケンス番号を追加することができますので、あなたはこのような何かを得るのだろうか? – ThingyWotsit
@ThingyWotsit私はそうは思わない。私はこのモジュールの送信機能を使用しています。https://github.com/santigimeno/node-pcsclite – jm8FE
あなたのコードについての質問があります。コードを表示しなければなりません。 ** "(私はそれが私がデータの格納をしているコールバックを持っている送信関数を呼び出すためだと思う)** * * show *私たちはそれから問題点を教えてくれるでしょう。 – ippi