异步调用
功能说明
桶相关接口和对象相关接口均支持以“Async”结尾的方式进行异步调用(例如,同步方法为ObsClient->putObject,则异步方法为ObsClient->putObjectAsync)。异步调用完成后会将返回结果输出到回调函数中,回调函数依次包含SDK自定义异常和SDK公共结果对象两个参数,如果回调函数中SDK自定义异常参数不为空,则表明操作失败;反之,则表明操作成功。
代码样例
$promise = $obsClient->putObjectAsync ( [ 'Bucket' => 'bucketname', 'Key' => 'objectkey', 'Body' => 'Hello OBS' ], function ($obsException, $resp) { if ($obsException === null) { printf ( "RequestId:%s\n", $resp ['RequestId'] ); } else { printf ( "ExceptionCode:%s\n", $obsException->getExceptionCode () ); printf ( "ExceptionMessage:%s\n", $obsException->getExceptionMessage () ); } } ); $promise->wait ();
异步调用会立即返回异步调用结果对象(GuzzleHttp\Promise\Promise),需要调用该对象的wait方法以等待异步调用完成。