2017-07-16 19 views
1

我試圖提高monico編輯器完成項目提供程序的性能(它正在進行ajax調用來獲取相應的項目......自定義語言非常大且複雜)。如何返回一個Thenable CompletionList

我想知道如果/如何返回Thenable CompletionList可能有助於此。 https://microsoft.github.io/monaco-editor/api/interfaces/monaco.languages.completionitemprovider.html

我們最初開始同步Ajax調用,使我們肯定有效果呈現,但在輸入流造成太大阻斷/中斷。現在ajax調用是異步的,但返回速度不夠快,我們收到了「無建議」消息。

回答

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調用發生。

+0

非常感謝,我想知道是否有可能在一個承諾內做出多個ajax調用?在我的問題中,可能有多個來源完成。 – Zanecat