Iterate through multiple get calls.
bora19 opened this issue · comments
Im trying to iterate through multiple devices and getting the response from each device. But since frisby requires return to work then I cannot use it in a for loop.
Is there any way to loop through multiple devices.
ex. device 123456 gets a response then I grab that response and save it in a text file then I want to continue looping through the rest of the devices and save the response on text file.
basic form:
for (i = 0; i < foo.length; i++) {
return frisby.get(baseUrl + foo[i]+ endPoint)
.then(function (res) {
console.log('HERE');
});
}
The above will only process the 1st iteration due to the required return. Is there a way to bypass it?
use Promise.all().
sample code:
const frisby = require('frisby');
it('issue 559.', () => {
let f = id => {
return frisby.get(baseUrl + id + endPoint)
.then(res => {
console.log('HERE');
});
};
let p = Array(5);
for (let i = 0; i < p.length; ++i)
p[i] = f(i);
return Promise.all(p);
});
Using promise.all works but I keep getting random error 504 gateway timeouts. It will not complete my test list of 8 items without an error 504. I usually get anywhere from 3-4 results back. Every time I run a different result will come back
Test time may be insufficient.