异步请求,使用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 []; // 可根据业务需求调整异常处理逻辑}
评论0
暂时没有评论