最近开始使用Typescript和我不确定的东西。
我正在使用npm软件包azure-storage
,并专门调用方法doesBlobExist
:
blobService.doesBlobExist(containerName, blobName, (callbackResult: ErrorOrResult<BlobService.BlobResult>) => {
//Want callbackResult.response here
});
doesBlobExist
(函数来自npm软件包)如下所示:
doesBlobExist(container: string, blob: string, callback: ErrorOrResult<BlobService.BlobResult>): void;
ErrorOrResult类型是具有以下内容的接口:
interface ErrorOrResult<TResult> {
(error: Error, result: TResult, response: ServiceResponse): void
}
我不确定该在哪里调用该函数,我希望可以使用该接口并执行以下操作:
callbackResult.response
,因为它在界面中,但是callbackResult
始终作为null
返回。
一经查看,它就从界面中设置为error: Error
。
那么实际上是否有可能做我想做的事情,或者我必须使用该函数,如:
blobService.doesBlobExist(containerName, blobName, (error, result, response) => {
//i.e. specify the 3 items directly in the interface
});
答案 0 :(得分:0)
阅读您的问题,您可以使用上面编写的解决方案,您可以做类似的事情:
blobService.doesBlobExist(containerName, blobName, (error, result, response) => {
if(error !== null){
// Do something
return;
}
// here you can work with your response data
});
如果要避免错误,可以省略if循环,直接处理响应,但是必须在响应中插入所有可能的选项。
callbackResult.response,因为它位于接口中,但是callbackResult始终返回为null。在查看时,将其设置为错误:界面错误。
正如您所说,由于该函数未返回任何错误,因此得到的是空值。