我有 2 个 scipts 几乎与嵌套在光纤中的级联函数调用相同。
这个(在区块链中解析 Tx)具有三个调用完美地工作
wait.launchFiber(blockchain)
function blockchain() {
foreach block {
parseBlock (blockIndex)
}
}
function parseBlock(blockIndex) {
foreach Tx in block {
parseTx(txHash)
}
}
function parseTx (txHash) {
if ( txHashInDB(txHash) ) {
do something
}
}
function txHashInDB (txHash) {
var theTx = wait.forMethod(Tx, 'findOne', {'hash': txHash});
return (theTx) ? true : false;
}
然后我必须对内存池做类似的事情。在这种情况下,我没有块,只有交易,所以我只有 2 个调用,我收到以下错误消息:
错误:wait.for 只能在光纤内部调用
wait.launchFiber(watchMempool);
function watchMempool() {
web3.eth.filter('pending', function (error, txHash) {
parseTx(txHash);
});
}
function parseTx (txHash) {
if ( txHashInDB(txHash) ) {
do something
}
}
function txHashInDB (txHash) {
var theTx = wait.forMethod(Tx, 'findOne', {'hash': txHash});
return (theTx) ? true : false;
}
我不明白问题是什么。这两个脚本具有相同的结构!