如何在Zapier中使用fetch?为何提示需使用回调函数?
为什么会出现这个提示?
Zapier的自定义代码环境对异步操作有特殊要求——它没法自动识别fetch的Promise什么时候执行完。如果你只用.then()/.catch()链处理异步请求,Zapier会误以为代码已经执行完毕,就会抛出那句提示,要求你用它提供的callback函数来明确告知异步任务的结束状态。
修正后的代码
fetch('https://api.trello.com/1/boards/?name={name}&key=APIKey&token=APIToken', { method: 'POST' }) .then(response => { console.log(`Response: ${response.status} ${response.statusText}`); return response.text(); }) .then(text => { console.log(text); // 通知Zapier异步操作成功,第二个参数是要传递给后续步骤的数据 callback(null, text); }) .catch(err => { console.error(err); // 通知Zapier异步操作失败,传入错误信息 callback(err); });
几个重要点
- 成功完成异步请求后,必须调用
callback(null, 结果数据):第一个参数传null表示没有错误,第二个参数是你想让Zapier后续步骤使用的数据。 - 如果请求出错,要在
catch块里调用callback(err),把错误信息传给Zapier,它会终止流程并提示错误。 - Zapier会一直等待
callback被调用,这样就能确保异步操作完全执行完再结束代码流程。
内容的提问来源于stack exchange,提问作者Louis Dias
相关产品推荐
相关产品推荐

