JSFiddle - React, Tailwind, and code Playground
HTML
<table id="items">
</table>
JavaScript
var ITEMS_URL = "https://api.guildwars2.com/v2/items";
var search_query = "Mighty";
search(search_query, function(item) {
$("#items").append("<tr><td><img src='" + item.icon +
"' /></td><td>" + item.name + "</td></tr>");
});
function search(name, callback) {
$.getJSON(ITEMS_URL, function(item_ids) {
forEachAsync(item_ids, function(id) {
$.getJSON(ITEMS_URL + "/" + id, function(item) {
if(item.name.indexOf(name) > -1) {
callback(item);
}
});
});
});
}
function forEachAsync(items, process) {
var todo = items.concat();
setTimeout(function() {
process(todo.shift());
if(todo.length > 0) {
setTimeout(arguments.callee, 25);
}
}, 25);
}