Async and promise.All in a catalog client script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â03-01-2022 11:59 AM
Hello,
I have the following script
var fetchNames = async () => {
console.log("aa");
try {
var res = await Promise.all([
fetch(url1,{
method: "GET",
headers: {
"Accept" : "application/json",
"Authorization" : "eyJraWQiOiJ0QkdvUmhIWVp2NUEzcjRlWHlHbHdtd2o1ZUFUMnVkSmx3MzVNcDIraW9zPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI2YTdiNzVmZi1jMWNkLTRiZmEtYThmNi00ODUyNzg0NmY2ZmUiLCJhdWQiOiI2ODRzMThjMDFlMDNuYXRtM2s4b3BxaGY2cCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJldmVudF9pZCI6ImQ0ZmJmMzQ2LWIwOGYtNGQzNS04MDI5LWJiOWI3ZTQ5MGJhZiIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjQ2MTU2Njc5LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb21cL2V1LXdlc3QtMV9xZ1duSGVTYkQiLCJjb2duaXRvOnVzZXJuYW1lIjoicHBtdGVhbUB2b2RhZm9uZS5jb20iLCJleHAiOjE2NDYxNjAyNzksImlhdCI6MTY0NjE1NjY3OSwiZW1haWwiOiJwcG10ZWFtQHZvZGFmb25lLmNvbSJ9.EWK_8d2MSyUloQsnZxgGHRASlq9HdFLHuJgdC4ZqOvg8CiX5m3b1lqeIqb6HWkBUXpGSThqhqMmoKTmKql4VIGsWdfPM0h4gOyVOTEgsigG2GU86J6IkOogP4F0uR_qoG5daHsFwRiPzSYIskAd3yJQ53a4L8P_uTmaUeb5JcBOvXvp9r9HSp_iGPVL3nJ0zyKzlASkFYIPtuRVrfR1_ilLEOgHLe3B2HCQNdDLlFhlZQbvRKVUmsEZyrLgTXt7wN7RQ9pQRUF7gDPNeevwZTVyqcj5XfjvINpXBqpnZE3OzzQrp5SXbSLhUG8V2Uaw0UcE-e2DdXDsths0YJXneqQ",
"Content-Type" : "application/json",
"User-Agent" : "servicenow"
}
}),
fetch(url2,{
method: "GET",
headers: {
"Accept" : "application/json",
"Authorization" : "eyJraWQiOiJ0QkdvUmhIWVp2NUEzcjRlWHlHbHdtd2o1ZUFUMnVkSmx3MzVNcDIraW9zPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI2YTdiNzVmZi1jMWNkLTRiZmEtYThmNi00ODUyNzg0NmY2ZmUiLCJhdWQiOiI2ODRzMThjMDFlMDNuYXRtM2s4b3BxaGY2cCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJldmVudF9pZCI6ImQ0ZmJmMzQ2LWIwOGYtNGQzNS04MDI5LWJiOWI3ZTQ5MGJhZiIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjQ2MTU2Njc5LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb21cL2V1LXdlc3QtMV9xZ1duSGVTYkQiLCJjb2duaXRvOnVzZXJuYW1lIjoicHBtdGVhbUB2b2RhZm9uZS5jb20iLCJleHAiOjE2NDYxNjAyNzksImlhdCI6MTY0NjE1NjY3OSwiZW1haWwiOiJwcG10ZWFtQHZvZGFmb25lLmNvbSJ9.EWK_8d2MSyUloQsnZxgGHRASlq9HdFLHuJgdC4ZqOvg8CiX5m3b1lqeIqb6HWkBUXpGSThqhqMmoKTmKql4VIGsWdfPM0h4gOyVOTEgsigG2GU86J6IkOogP4F0uR_qoG5daHsFwRiPzSYIskAd3yJQ53a4L8P_uTmaUeb5JcBOvXvp9r9HSp_iGPVL3nJ0zyKzlASkFYIPtuRVrfR1_ilLEOgHLe3B2HCQNdDLlFhlZQbvRKVUmsEZyrLgTXt7wN7RQ9pQRUF7gDPNeevwZTVyqcj5XfjvINpXBqpnZE3OzzQrp5SXbSLhUG8V2Uaw0UcE-e2DdXDsths0YJXneqQ",
"Content-Type" : "application/json",
"User-Agent" : "servicenow"
}
}),
fetch(url3,{
method: "GET",
headers: {
"Accept" : "application/json",
"Authorization" : "eyJraWQiOiJ0QkdvUmhIWVp2NUEzcjRlWHlHbHdtd2o1ZUFUMnVkSmx3MzVNcDIraW9zPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI2YTdiNzVmZi1jMWNkLTRiZmEtYThmNi00ODUyNzg0NmY2ZmUiLCJhdWQiOiI2ODRzMThjMDFlMDNuYXRtM2s4b3BxaGY2cCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJldmVudF9pZCI6ImQ0ZmJmMzQ2LWIwOGYtNGQzNS04MDI5LWJiOWI3ZTQ5MGJhZiIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjQ2MTU2Njc5LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb21cL2V1LXdlc3QtMV9xZ1duSGVTYkQiLCJjb2duaXRvOnVzZXJuYW1lIjoicHBtdGVhbUB2b2RhZm9uZS5jb20iLCJleHAiOjE2NDYxNjAyNzksImlhdCI6MTY0NjE1NjY3OSwiZW1haWwiOiJwcG10ZWFtQHZvZGFmb25lLmNvbSJ9.EWK_8d2MSyUloQsnZxgGHRASlq9HdFLHuJgdC4ZqOvg8CiX5m3b1lqeIqb6HWkBUXpGSThqhqMmoKTmKql4VIGsWdfPM0h4gOyVOTEgsigG2GU86J6IkOogP4F0uR_qoG5daHsFwRiPzSYIskAd3yJQ53a4L8P_uTmaUeb5JcBOvXvp9r9HSp_iGPVL3nJ0zyKzlASkFYIPtuRVrfR1_ilLEOgHLe3B2HCQNdDLlFhlZQbvRKVUmsEZyrLgTXt7wN7RQ9pQRUF7gDPNeevwZTVyqcj5XfjvINpXBqpnZE3OzzQrp5SXbSLhUG8V2Uaw0UcE-e2DdXDsths0YJXneqQ",
"Content-Type" : "application/json",
"User-Agent" : "servicenow"
}
}),
fetch(url4,{
method: "GET",
headers: {
"Accept" : "application/json",
"Authorization" : "eyJraWQiOiJ0QkdvUmhIWVp2NUEzcjRlWHlHbHdtd2o1ZUFUMnVkSmx3MzVNcDIraW9zPSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiI2YTdiNzVmZi1jMWNkLTRiZmEtYThmNi00ODUyNzg0NmY2ZmUiLCJhdWQiOiI2ODRzMThjMDFlMDNuYXRtM2s4b3BxaGY2cCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJldmVudF9pZCI6ImQ0ZmJmMzQ2LWIwOGYtNGQzNS04MDI5LWJiOWI3ZTQ5MGJhZiIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjQ2MTU2Njc5LCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb21cL2V1LXdlc3QtMV9xZ1duSGVTYkQiLCJjb2duaXRvOnVzZXJuYW1lIjoicHBtdGVhbUB2b2RhZm9uZS5jb20iLCJleHAiOjE2NDYxNjAyNzksImlhdCI6MTY0NjE1NjY3OSwiZW1haWwiOiJwcG10ZWFtQHZvZGFmb25lLmNvbSJ9.EWK_8d2MSyUloQsnZxgGHRASlq9HdFLHuJgdC4ZqOvg8CiX5m3b1lqeIqb6HWkBUXpGSThqhqMmoKTmKql4VIGsWdfPM0h4gOyVOTEgsigG2GU86J6IkOogP4F0uR_qoG5daHsFwRiPzSYIskAd3yJQ53a4L8P_uTmaUeb5JcBOvXvp9r9HSp_iGPVL3nJ0zyKzlASkFYIPtuRVrfR1_ilLEOgHLe3B2HCQNdDLlFhlZQbvRKVUmsEZyrLgTXt7wN7RQ9pQRUF7gDPNeevwZTVyqcj5XfjvINpXBqpnZE3OzzQrp5SXbSLhUG8V2Uaw0UcE-e2DdXDsths0YJXneqQ",
"Content-Type" : "application/json",
"User-Agent" : "servicenow"
}
})
]);
var data = await Promise.all(res.map(r => r.json()));
var response=data.flat();
console.log(response);
console.log(JSON.stringify(response[0]));
} catch {
throw Error("Promise failed");
}
};
fetchNames();
If I try to copy and paste it within a catalog client script, I get an error.
How should I modify the above script in order SN to be able to execute it?
I would be grateful for your assistance.
Regards,
Smith.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â03-01-2022 02:39 PM
Hi,
Just for your information, you are getting an error because you are using ES6+ Javascript.
ServiceNow does not support ES6+ and is currently using ES5. It wont be able to run advanced asynchronous programming techniques like => and Awaits
Looking at the script itself, I may be wrong, but I cant see this being changed and working as you may think it will in a Client script
Please mark my answer as Correct/Helpful based on impact
Regards,
Dan H
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â03-01-2022 11:27 PM
Hi Dan,
thank you for your response.
So based on your experience, you don't think I can "translate" it somehow to code that SN understands and has the same functionality??

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â03-02-2022 12:29 AM
No problem,
What exactly is the requirement, what to you want to do?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â03-02-2022 12:54 AM
Hi Dan,
I m searching for a way to make 4 API calls in parallel (simulatenously). Either in client side or server side.
Any ideas??