【发布时间】:2016-12-01 16:03:09
【问题描述】:
我有这个 try 声明,我想用更多的 if 来更新它,让它在最终拒绝之前再尝试 2 次。我没有成功。我不知道如何正确地做到这一点。有谁知道之后如何修正我的陈述?
之前的声明(工作)
try {
offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, log) {
if (err) {
helper.log('Error accepting trade offer ' + offer.tradeofferid, 891, err);
offers.declineOffer({tradeOfferId: offer.tradeofferid}, function() {
currentGameOffers.splice(currentGameOffers.indexOf(offer.tradeofferid), 1);
});
return;
}
声明后(不工作)
try {
offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, log) {
if (err) {
helper.log('Error accepting trade offer: 1st try' + offer.tradeofferid, 891, err);
offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, log) {
if (err) {
helper.log('Error accepting trade offer: 2nd try ' + offer.tradeofferid, 891, err);
offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, log) {
if (err) {
helper.log('Error accepting trade offer: 3rd try ' + offer.tradeofferid, 891, err);
offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, log) {
if (err) {
helper.log('Offer declined: failed 3 times ' + offer.tradeofferid, 891, err);
offers.declineOffer({tradeOfferId: offer.tradeofferid}, function() {
currentGameOffers.splice(currentGameOffers.indexOf(offer.tradeofferid), 1);
});
return;
}
【问题讨论】:
-
使用
promise或async。这是回调地狱! npmjs.com/package/async -
代码的哪一部分“不起作用”?你期待看到什么?实际发生了什么?您的控制台中是否有任何异常或错误?
-
你们能解释一下为什么会这样吗?
-
@DanO 好吧,基本上首先尝试接受报价“offers.acceptOffer”,如果出现错误,它会记录并拒绝。我希望它再试 2 次。
-
@Petras - 你确定所有的
{都有匹配的},我认为甚至还有一些缺失的)但它非常很难分辨这是写的。
标签: javascript node.js steam