我有一个非常讨厌的问题。基本上我的代码可以在除了这一个实例之外的所有其他地方工作,其中wait.for在继续之前不等待redis命令完成。场景是我正在尝试处理XML文件并在读取XML文件时更新redis DB中的记录。在更新整体客户记录和计数之前,我正在尝试检索区域内的客户卡号列表。但它没有等待。
以下是代码:
function processCredit(creditObj)
{
.....
console.log('CREDIT CARD=1');
wait.launchFiber( updateCustomer, cardNumber );
}
function updateCustomer(cardNumber)
{
var foundCard=0;
console.log('CREDIT CARD=2');
var customerIDs = wait.forMethod(redisClient, 'zrange', 'cn:'+cardNumber+':'+stores[siteId]['region'], 0, -1);
console.log('CREDIT CARD=3 card number='+cardNumber);
....
}
“CREDIT CARD = 3”语句总是打印在日志文件的末尾,而不是在“CREDIT CARD = 2”之后直接打印
我在整个程序中的许多其他地方使用过wait.for并且它一直有效。我不明白为什么在这种情况下不会。
由于