setTimeout给出了意外的标识符?

时间:2015-04-22 18:19:18

标签: javascript

所以我有这个代码,我在谷歌Chrome控制台内运行,每次我尝试运行它,它给我意想不到的标识符在线:12。我去了那一行,它是setTimeout。我真的不知道如何解决这个问题,我试着打电话给snipebot(),但那也没办法。

function snipebot(itemID, max_price){
    var ItemURL = "http://www.roblox.com/Item.aspx?id=" + itemID;
            $.get(ItemURL, function(data){
                var purchaseData = $($(data).find(".PurchaseButton")[0]).data();
                        if (purchaseData['expectedPrice'] <= max_price){
                            $.post('/API/Item.ashx?rqtype=purchase&productID=' + purchaseData['productId'] + '&expectedCurrency=1&expectedPrice=' + purchaseData['expectedPrice'] + '&expectedSellerId=' + purchaseData['expectedSellerId'] + '&userAssetID=' + purchaseData['userassetId'], function(){
                            console.log('[' + purchaseData['expectedPrice'] + ']');
                            });
                        }
            }
            setTimeout(function(){
            snipebot(itemID, max_price);
            });
};
snipebot(18426536, 140);

1 个答案:

答案 0 :(得分:4)

这是出乎意料的,因为您对$.get的来电未在前一行正确关闭:

function snipebot(itemID, max_price){
    var ItemURL = "http://www.roblox.com/Item.aspx?id=" + itemID;
            $.get(ItemURL, function(data){
                var purchaseData = $($(data).find(".PurchaseButton")[0]).data();
                        if (purchaseData['expectedPrice'] <= max_price){
                            $.post('/API/Item.ashx?rqtype=purchase&productID=' + purchaseData['productId'] + '&expectedCurrency=1&expectedPrice=' + purchaseData['expectedPrice'] + '&expectedSellerId=' + purchaseData['expectedSellerId'] + '&userAssetID=' + purchaseData['userassetId'], function(){
                            console.log('[' + purchaseData['expectedPrice'] + ']');
                            });
                        }
            }); // <-- here
            setTimeout(function(){
            snipebot(itemID, max_price);
            }, 2000); // <!-- See below
};
snipebot(18426536, 140);

另请注意我的第二条评论,其中您错过了setTimeout的第二个参数,即延迟多长时间。作为一个例子,我在两秒钟的延迟中添加了。如果没有这个,它默认为0,这可能是你想要的也可能不是。