当前位置: 代码迷 >> JavaScript >> “未在1秒内处理未兑现的承诺” vscode API
  详细解决方案

“未在1秒内处理未兑现的承诺” vscode API

热度:128   发布时间:2023-06-13 12:24:04.0

因此,我一直在开发我的第一个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,但我没有安装该扩展。

谢谢!

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

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

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

为了使访问API更方便,但是由于只有在我第一次运行扩展程序时才启动它们,因此无论何时我更改“ activeTextEditor ”,变量仍将包含导致崩溃的旧信息。