更新时间:2022-02-10 GMT+08:00

异步调用

功能说明

桶相关接口和对象相关接口均支持以“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方法以等待异步调用完成。