问题描述
代码:
atom.workspace.observeTextEditors (editor) ->
editor.onDidSave ->
view = atom.views.getView(atom.workspace.getActiveTextEditor())
atom.commands.dispatch(view,'platformio-ide-terminal:insert-custom-text-1')
.then () -> atom.commands.dispatch(view,'platformio-ide-terminal:insert-custom-text-2')
为什么原子不允许我像这样在我的init文件中顺序执行来自不同程序包的命令?
解决方法
很难说为什么它不能使用提供的少量信息
- 调度这些命令中的任何命令是否有效(例如在控制台中)?
- 链接无效吗?
- 控制台中是否有任何错误?
- 您在更新init文件后重新启动Atom吗?
我将您的代码重构为使用ES6,因为与“ thenable”语法相比,我更喜欢异步/等待。为了使用它,将init.coffee
重命名为init.js
:
atom.workspace.observeTextEditors(editor => {
return editor.onDidSave(async () => {
const view = atom.views.getView(atom.workspace.getActiveTextEditor());
await atom.commands.dispatch(view,'platformio-ide-terminal:insert-custom-text-1');
await atom.commands.dispatch(view,'platformio-ide-terminal:insert-custom-text-2');
});
});
请注意,我使用确定可以使用的命令测试了代码段。但是,我将它们重新设置为您的示例中的内容(再次:确保它们有效!)