javascript - 从函数返回后是否可以触发事件?
问题描述
我正在开发一个使用我不久前写的 REST API 的 JavaScript 项目。我正在使用 Axios 向 API 发出 get/post/put/delete 请求。我有一个异步函数“删除”:
async delete(resource, data) {
try {
var resp = await axios.delete(this.buildUrl(resource), { data });
var event = new CustomEvent('ApiDELETE', {
detail: {
resource_type: resource,
request_params: data,
response: resp.data
}
});
document.dispatchEvent(event);
return resp.data;
} catch(error) {
throw error;
}
}
我试图在删除调用返回后立即触发 CustomEvent。例如,我有一个想要运行的函数,但我需要确保它一直等到删除特定资源并处理响应。因此,我对 ApiDELETE 事件有一个事件侦听器,该事件将在事件触发时运行。
var theDataWeNeed = await api.delete("resource", data);
document.addEventListener("ApiDELETE", (event) => {
console.log(theDataWeNeed);
});
这样做的问题是我需要等到resp.data
返回,因为事件处理程序运行的函数依赖于设置为delete
函数返回值的变量。
delete
函数返回后是否可以始终触发事件?
PS 是的,我知道在这个特定的示例中,我可以完全忘记事件并将控制台日志放在等待语句之后。但是,我正在寻找一个更强大的解决方案,让我能够参与这些事件。
解决方案
推荐阅读
- javascript - 如何在对象函数中引用对象数据?
- python - 如何使 matplotlib 在 AWS EMR Jupyter 笔记本中工作?
- python - 如何使用 Keras 回调在 Tensorboard 中可视化平均编辑距离?
- python - 调整DataFrame中的异常格式,函数继续返回None
- json - 使用 T-SQL OPENJSON 和 SELECT * 时 VS 崩溃
- salesforce - 无法为 Salesforce 运行 Lightning 测试服务 (LTS)
- gatsby - 如何查找使用 gatsby-remark-copy-linked-files 导入的图像的路径?
- npm - 如何在 Mac 上使用 NPM 安装 Bulksplash
- react-native - 如何将“链接”转移到另一个组件?
- python - 无法下载匀称的包