私は Zapier を数週間使用していますが、通常どおり、各機能を構築するにつれて、私たちのニーズと要望はより複雑になっています。したがって、「Code by Zapier」のJavaScriptに関する現在の問題。
回答のメモ: 私自身と私が利用できるプログラマーのチームは JavaScript の専門家ではありませんが、ほとんどの概念を理解しています。
目的: JavaScript への入力が true の場合にのみ fetch() 呼び出しを行う。
問題: コードに fetch() が含まれている場合、Zapier は常に「出力が定義されていません」を返します。
ReferenceError: 出力が定義されていません
つまり、全体的なコード構造は問題ありませんが、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 は、'input' 変数と 'output' 変数を事前に定義しています。'output' は最初は Null で、コードによって値を設定する必要があります。