javascript - Node js中的异步函数不会调用应该在执行后调用的函数
问题描述
我正在做一个需要使用电子 js 的项目(我是 javascript 新手)。当我尝试使用该electron.remote.dialog.showOpenDialog
函数时,它不会调用应该在异步函数执行后执行的函数(console.log
)。Sync 方法成功,而 Async 方法不成功。如果有人可以帮助,请帮助我。这是代码。
异步方法(不成功)
const { dialog } = require("electron").remote;
dirButton = document.getElementById('select-file')
function getDir(e) {
dialog.showOpenDialog(
{ properties: ["openDirectory", "openFile"] },
console.log
);
}
dirButton.addEventListener("click", getDir);
同步方法(成功)
const { dialog } = require("electron").remote;
dirButton = document.getElementById('select-file')
function getDir(e) {
dirr = dialog.showOpenDialogSync(
{ properties: ["openDirectory", "openFile"] },
);
console.log(dirr)
}
dirButton.addEventListener("click", getDir);
解决方案
你需要在异步调用中做这样的事情,因为它返回承诺。
function getDir(e) {
dialog.showOpenDialog({ properties: ["openDirectory", "openFile"] }).
then(result => {
console.log(result)
}).catch(err => {
console.log(err)
})
}
推荐阅读
- angular - Angular 11 - ng serve - 选项“sourceMap”已弃用
- java - 使用 build-helper-maven-plugin 添加生成的 Apache Avro 源
- r - 如何增加绘图的高度以在 r 中闪亮的 flexdashboard 中占据整个高度空间?
- python - 如何使用 Pandas 在 Python 中将两个字符串拆分为不同的列?
- python - 使用“预测”函数进行逻辑回归时出错
- java - 如何使用 Firebase 中的用户令牌向特定用户发送通知?
- reactjs - React Native 和底部选项卡导航,弓在屏幕之间导航
- javascript - 当我将表单发布到特定 api 时如何获得响应
- c++ - if 语句的错误结果
- python - Tensorflow Serving docker:基本路径 /models/model 下没有可服务的 colbert 创始人的版本