2

I am looping through a DB of users to pass data to an API to validate addresses via getAsync. I need to update my DB record based on what the API returns. Problem is that I can't figure out how to pass $user->id to the promise to update the record.

$users = User::all();
$client = new Client();

$promises = (function () use ($users, $client) {
   foreach ($users as $user) {
        yield $client->getAsync('https://some/api/' . $user->address);
    }
})();

$eachPromise = new EachPromise($promises, [
    'concurrency' => 2,
    'fulfilled' => function (Response $response) {
        if ($response->getStatusCode() == 200) {
            //NEED TO ACCESS USER->ID HERE TO UPDATE RECORD IN DB                   
        }
    },
    'rejected' => function ($reason) {
    
    }
]);
$eachPromise->promise()->wait();

Thanks in advance!

pete
  • 1,023
  • 1
  • 10
  • 15

0 Answers0