异步请求,使用GuzzleHttp发送,报错:

Method 'unwrap' not found in \GuzzleHttp\Promise\Promise

经多轮尝试,发现是因为Promise版本的原因。
Promise为1.5及以下的时候,可以用Promise\unwrap
但是如果是2.0及以上,此方法就不行了。

API 迁移:根据 Guzzle Promises 2.x+ 的迁移指南,将旧的 Promise\unwrap() 函数调用替换为 Utils::unwrap() 静态方法(参考提供的 CHANGELOG 和 README 中的迁移表)。
命名空间调整:引入 GuzzleHttp\Promise\Utils 类,这是 2.x+ 版本中集中提供 promise 工具方法的类。

关键代码:

// 关键变更:使用 Utils::unwrap() 替代旧的 Promise\unwrap()
// 参考官方迁移表:unwrap -> Utils::unwrap
try {

$results = Utils::unwrap($promises);

} catch (\Throwable $e) {

// 捕获所有未处理的异常(包括 AggregateException 等)
return []; // 可根据业务需求调整异常处理逻辑

}