node.js - blob.doesBlobExist 不返回值
问题描述
这可能是一个非常愚蠢的问题,但我需要问;我正在尝试使用 blobservice 中的 dosBlobExist 方法检查 blob 是否存在。
我的代码如下所示:
var blobexists;
var containerNamesArray[.....,....,...,..]
for (var i = 0; i < containerNamesArray.length; i++) {
blobService.doesBlobExist(containerNamesArray[i], "path/something.json", function (error, result) {
if (!error) {
if (result.exists) {
blobexists= result.exists
console.log(blobexists) //this prints values
return(blobexists)
} else {
blobexists= result.exists
return(blobexists)
}
}
});
console.log(blobexists) //this returns null
}
现在,如果我在 if(!error) 中执行 console.log,我会得到结果的值,如果我将 result.exists 分配给 blobexists,返回值,然后尝试在 for 或 for 之外打印它说那个 blobexistis 是空的。
为什么 return 不让我将值返回给全局变量?
解决方案
为什么 return 不让我将值返回给全局变量?
这是因为您的blobService.doesBlobExist
方法是异步执行的。因此发送请求以检查 blob 的存在并等待响应,但是在调用该方法console.log(blobexists)
后几乎立即执行。doesBlobExist
推荐阅读
- http - 如何在返回错误之前收集尽可能多的信息
- html - 如何获得输入框内的筹码?
- vba - 对话框 wdDialogFileOpen 并不总是立即更新 ActiveDocument
- swirl - 如何删除 R swirl 包中的特定课程进度?有没有可以做到这一点的命令或函数?
- node.js - 未定义 Google Cloud Storage 要求
- python - 是否可以 @mark.parametrize 两次测试?
- ios - 如何取消一组中的某个 AnyCancellable
? - android - 通过套接字发送图像:ByteArrayOutputStream.size() 返回负值(有时)
- android - Nativescript-vue:'admob createBanner 错误:错误:java.lang.NullPointerException
- flutter - 颤振等待对话框的结果