问题描述
{"pasValidate":true}
要么
{"pasValidate":false}
我需要 Cloud Workflows 正确比较 true 和 false 以采取正确的路线。我试过引号,没有引号,文档中唯一的部分是必须通过响应的“正文”部分引用变量,然后使用它(实际上,文档中没有其他内容)所以这就是我所做的:
- getData:
call: http.get
args:
url: https://us-central1-ACCOUNT.cloudfunctions.net/Cloud_Function
result: jsonResponse
- evaluateRes:
switch:
- condition: $(jsonResponse.body.pasValidate == "true")
next: logStep1
- condition: $(jsonResponse.body.pasValidate == "false")
assign:
- failLvl: "step1"
next: endFail
在这一切之后,我得到了以下失败运行响应:
in step "evaluateRes": {"message":"TypeError: in conditional predicate: expected boolean,got str","tags":["TypeError"]}
我知道它正在获取一个字符串而不是所需的 True/False,但在这一点上,我敢于向社区询问我缺少什么。也许我没有抓住一些更简单的东西。
来源:
- https://cloud.google.com/workflows/docs/reference/syntax
- https://cloud.google.com/workflows/docs/controlling-execution-order
解决方法
首先,确保你的函数的响应是 application/json。您可以通过将响应标头设置为 <td>
<button id="save" type="submit" class="btn btn-primary my-2" v-on:click="added"> Add to Email List </button>
</td>
来实现。例如:
application/json
如未完成,您可能会遇到解析问题,如下所述:
当 application/json 类型的响应存储在变量中时,JSON 响应将转换为您作为响应正文访问的字典。 Workflows 包含一个用于访问此数据的内置解析器。
接下来,在使用 res.setHeader("Content-Type","application/json");
块时使用花括号 {}
而不是括号 ()
。删除布尔值上的双引号。
switch