如何返回一个Thenable CompletionList

时间:2017-07-16 22:03:50

标签: ajax autocomplete monaco-editor

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

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

我们最初开始使用同步ajax调用,因此我们肯定会有结果显示,但这会导致输入流量过多阻塞/中断。现在ajax调用是异步的,但是返回的速度不够快,我们收到了“No advice”消息。

1 个答案:

答案 0 :(得分: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调用发生时,摩纳哥编辑器将显示一组很好的动画点作为加载指示符。