vscode API“无法在1秒内处理被拒绝的承诺”

时间:2019-02-14 12:59:42

标签: javascript api visual-studio-code vscode-extensions

所以我一直在开发我的第一个vscode扩展,并且一切顺利,直到调试器停止我对扩展的执行。

我对javascript很陌生,所以也许我在“ thenables”上缺少了一些东西,但这是我的问题。

我使用键盘快捷键(例如)运行扩展程序。 “ ctrl + alt + o ”,它运行良好,但是当我更改“ activeTextEditor ”时,我得到“ 被拒绝的承诺未在1秒钟内处理” ”。

可疑部分是这个:

    const checkOutHeader = (history) => {
    console.log("Path: checkOutHeader");
    activeTextEditor.edit((editor) => {
        editor.replace(new vscode.Range(0,0,10,100), commentHeader(
            populateCheckOutHeader(head.out, history).substring(1), languageId));
    }).then((none)=>{
        console.log("We are here!");
        saveFile();
    });
};

这基于扩展程序在调试控制台中记录的路径:

CheckoutHeader: Now active!
Path: getHeaderConfig
lang: makefile
Path: supportHeaderLanguage
Path: checkInHandler
Path: getCurrentHeader
Path: getHistoryFileStatus
Path: getHeaderHistory
Path: getHistoryFileName
Path: getHistoryFileStatus
Path: getHistoryTimeIn
Path: getHistoryInBy
Path: getHistoryTimeOut
Path: getHistoryOutBy
Path: checkInHeader
rejected promise not handled within 1 second

我了解到有人声称这是c ++ tools,但我没有安装该扩展名。

谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明,尽管有调试反馈,但诺言从来都不是问题。

我已经在文件顶部设置了全局变量

const activeTextEditor = vscode.window.activeTextEditor;
const document = activeTextEditor.document;
const languageId = document.languageId;

使访问API更加方便,但是由于它们仅在我每次更改“ activeTextEditor ”时第一次运行扩展程序时才启动,因此该变量仍包含旧信息导致崩溃。