【发布时间】:2018-03-29 09:51:17
【问题描述】:
我正在与 Asana 和 Zapier 合作,并且正在努力在项目中获取一个部分,如果它不存在,可以选择创建一个。 Zapier 本身不存在此操作。
我使用 Zapier 代码执行 GET,该代码成功地将 sectionId 返回为 0,或者来自 Asana 的实际 id。
在下一个操作中,我正在再次执行 Zapier Code,并且我正在尝试执行 POST 来创建 Section,但前提是 GET 操作返回的 sectionId 为 0。
我认为我遇到的问题与对异步编程缺乏了解有关。但是,我或多或少地将成功的 GET 操作中的代码复制到了新操作中,并将 HTTP 请求更改为 POST。
如果我删除 if 语句,那么 POST 会按预期工作。
我遇到困难的地方是将 fetch 包装在 if 语句中。我试图简单地将它包装在 if 语句中(如果为 0,则执行 fetch,否则,返回不为 0 的 ID),并将其创建为我放入 if 语句中的函数。我尝试了每种方法的几种不同配置,但无论哪种方式,我收到的错误是:
讨价还价。我们在创建运行 JavaScript 时遇到错误。 :-( 错误: ReferenceError: 未定义输出
这是我的代码:
var sId = input.sId;
function doFetch(aPId) {
var settings = {
'method': 'POST',
'headers': {
'Authorization': 'Bearer <ACCESS TOKEN>',
'Content-Type': 'application/x-www-form-urlencoded'
},
'body': "name=Emails%3A"
};
var url = 'https://app.asana.com/api/1.0/projects/' + aPId + '/sections';
fetch(url,settings)
.then(function(res) {
return res.json();
})
.then(function(json) {
callback(null, json);
})
.catch(callback);
}
if(sId === 0){
return doFetch(input.asanaProjectId);
}
output = [{test: 123}];
有什么想法吗?
【问题讨论】: