【问题标题】:How to return a Thenable CompletionList如何返回一个 Thenable CompletionList
【发布时间】:2017-07-19 01:23:38
【问题描述】:

我正在尝试提高 monico 编辑器完成项提供程序的性能(它目前正在进行 ajax 调用以获取适当的项...自定义语言非常庞大且复杂)。

我想知道返回 Thenable CompletionList 是否/如何对此有所帮助。 https://microsoft.github.io/monaco-editor/api/interfaces/monaco.languages.completionitemprovider.html

我们最初是从同步 ajax 调用开始的,这样我们就可以确定要呈现的结果,但这会导致输入流中过多的阻塞/中断。现在 ajax 调用是异步的,但返回的速度不够快,我们会收到一条“无建议”消息。

【问题讨论】:

    标签: ajax autocomplete monaco-editor


    【解决方案1】:

    我想通了。以防其他人想知道如何做同样的事情。来自 provideCompletionItems 函数...

    return new Promise(function(resolve, reject) {
      $.ajax({
        url: 'someaddress.com',
        dataType: 'json',
        success: function(res) {
          // create your keywords json here
          resolve({items: keywords, isIncomplete: true});
        },
        error: function(xhr, error){
          reject({items: [], isIncomplete: true})
        },
      });
    });
    

    然后,当 ajax 调用发生时,monaco 编辑器将显示一组漂亮的动画点作为加载指示器。

    【讨论】:

    • 非常感谢,我想知道是否可以在一个承诺中进行多个 ajax 调用?在我的问题中,完成的来源可能不止一个。
    猜你喜欢
    • 1970-01-01
    • 2017-02-08
    • 2020-01-12
    • 1970-01-01
    • 2022-10-16
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    相关资源
    最近更新 更多