{ "info": { "_postman_id": "5b057346-a14e-4144-9a07-c917b95984ce", "name": "Promise.all-Actors", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "DummyRequest", "event": [ { "listen": "prerequest", "script": { "exec": [ "" ], "type": "text/javascript" } }, { "listen": "test", "script": { "exec": [ "function fetch (url) {\r", " return new Promise((resolve, reject) => {\r", " pm.sendRequest(url, function (_, fetchResponse) {\r", " resolve(fetchResponse);\r", " });\r", " });\r", "} // ^^ No Fetch API in Postman! But see https://stackoverflow.com/a/67588692\r", "const lock = setTimeout(() => {}, 43210);\r", "const fullnames = [];\r", "const urls = [];\r", "const urlOuter = 'http://henke.atwebpages.com/postman/actors/actors.json';\r", "fetch(urlOuter).then(responseO => responseO.json()).then(responseBodyO => {\r", " const tblHeader = responseBodyO.name;\r", " const actors = responseBodyO['release-groups'];\r", " for (const item of actors) {\r", " fullnames.push(item.fullname);\r", " urls.push('http://henke.atwebpages.com/postman/actors/coverart/' +\r", " item.id + '.json');\r", " }\r", " return Promise.all(urls.map(url => fetch(url)\r", " .then(responseI => responseI.json())\r", " .then(responseBodyI => responseBodyI.images.find(obj =>\r", " obj.back === true).thumbnails.small)))\r", " .then(imageURLs => {\r", " clearTimeout(lock); // Unlock the timeout.\r", " const actorNames = fullnames.map(value => ({ name: value }));\r", " const actorImages = imageURLs.map(value => ({ image: value }));\r", " const actorsAndImages = actorNames.map(\r", " (item, i) => Object.assign({}, item, actorImages[i]));\r", " console.log('actorsAndImages:\\n' + JSON.stringify(actorsAndImages));\r", " const template = `
` + tblHeader + ` |
---|
{{name}} |