frisby
frisby copied to clipboard
Iterate through multiple get calls.
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.
https://github.com/vlucas/frisby/issues/515#issuecomment-458000926