Azure函数-tableService.queryEntities被跳过-node.js

问题描述

我有一个使用表存储服务的功能,更新天蓝色存储表中的数据没有问题,但是我无法使用queryEntities。

我的代码如下:

var azure = require('azure-storage');
var tableService = azure.createTableService(mystuff,mystuff);
var query = new azure.TableQuery().select(['RowKey']);//or .top(5)

tableService.queryEntities('mytable',query,null,function(error,result,response) {
  if (!error) {
    // result.entries contains entities matching the query
  }
});

表中有条目,我只需要将RowKey推送到结果中即可;

如果我放置一个context.log来检查它在哪里执行,我有

var azure = require('azure-storage');
var tableService = azure.createTableService(mystuff,mystuff);
var query = new azure.TableQuery().select(['RowKey']); //or .top(5)
context.log("control1")
tableService.queryEntities('mytable',response) {
context.log("control2")
  if (!error) {
    // result.entries contains entities matching the query
  }
});

control1出现在控制台中,control2被跳过了,所以我想tableService.queryEntities被完全跳过了。

所有其他tableService方法都可以正常工作,有帮助吗?

https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-how-to-use-nodejs#query-a-set-of-entities

解决方法

我可以重现您的问题:

enter image description here

简单解释一下,这是一个异步问题。查询需要时间,函数跳过并首先执行查询下方的逻辑。

解决方案:

只需等待查询逻辑完成。像这样:

MOD_REG_RM = [MOD + REG + R_M]
MOD = 0b01
...

这次我可以成功获得console1和console2:

enter image description here

让我知道这是否可以解决您的问题。