Skip to content

Instantly share code, notes, and snippets.

@MrArnoldPalmer
Created June 29, 2015 23:47
Show Gist options
  • Save MrArnoldPalmer/6bc2af89496538ad4e1e to your computer and use it in GitHub Desktop.
Save MrArnoldPalmer/6bc2af89496538ad4e1e to your computer and use it in GitHub Desktop.
Async Requests Awesomeness
// uses npm library request
var request = require('request');
var async = require('async');
// Define function to get steam user info from steam_id string
// steamid parameter must be a string
// interact with response body in callback
function GetSteamUserInfo(steamid, callback) {
var connectionString = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=' + process.env.STEAM_API_KEY + '&steamids=' + steamid;
// begin GET http request
request({
uri: connectionString
}, function(error, response, body) {
if(!error && response.statusCode == 200) {
var playerJson = JSON.parse(body);
var player = playerJson.response.players[0];
console.log(playerJson);
callback(null, player);
}
else if(error) {
callback(error);
}
else {
callback(response.statusCode);
}
});
}
function GetItemPrice(marketHashName, callback) {
var connectionString = 'https://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=' + marketHashName;
// begin GET http request
request({
uri: connectionString
}, function(error, response, body) {
if(!error && response.statusCode == 200) {
callback(null, body);
}
else if(error) {
callback(error);
}
else {
callback(response.statusCode);
}
});
}
items = ['P90 | Ash Wood (Field-Tested)', 'P90 | Ash Wood (Field-Tested)'];
function GetItemsPrice(items, callback) {
async.map(items,
GetItemPrice,
function(err, results){
// All tasks are done now
callback(results);
}
);
}
async.parallel([
function(callback) {
GetItemsPrice(items, function(itemsData) {
callback(null, itemsData);
});
},
function(callback) {
GetSteamUserInfo('76561198077592773', function(error, userData) {
callback(null, userData);
});
}
],
function(error, results) {
console.log(results);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment