我已经使用 Zapier 几个星期了,按照正常情况,随着我们构建每个功能,我们的需求变得更加复杂。因此,我目前在“Zapier 的代码”中遇到了一些 JavaScript 问题。
任何答案请注意:我自己和我所拥有的程序员团队都不是 JavaScript 专家,但我们确实了解大多数概念。
目标:仅当 javascript 的输入为真时才进行 fetch() 调用。
问题:当代码中包含 fetch() 时,Zapier 总是返回“未定义的输出”。
ReferenceError: output is not defined theFunction
ie:整体代码结构还可以,我使用fetch()的方式和返回处理方式不行。
我已经尝试了无数种变体,并在这里使用了一些很棒的帖子,但没有解决这个问题。
简化的代码如下所示:
//This does the Fetch:
function doFetch(urlAddress) {
console.log("2. Doing Fetch");
return fetch(urlAddress)
.then(function(res) {
return res.text();
})
.then(function(response) {
//Hardcode a return.
console.log("3. Returning Response");
return response.json();
});
}
if (input.emailHasChanged == "true")
{
//Do Something
console.log("1. Updating Email");
doFetch(urlAddress)
.then(function(response) {
//Do something with Reponse.
console.log("4. Doing Something: ", response);
callback(null, response);
});
}
else
{
//Do Nothing
console.log("1. Not Updating email");
output = {id: 2};
}
我相信这是我从 fetch() 或 JavaScript 的异步性质返回的方式。
注意:Zapier 为我预定义了“输入”和“输出”变量。“输出”最初为 Null,并且必须由代码设置一个值。