在文件保存时按顺序分派命令?咖啡初始化

问题描述

代码

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');
  });
});

请注意,我使用确定可以使用的命令测试了代码段。但是,我将它们重新设置为您的示例中的内容(再次:确保它们有效!)