【问题标题】:Promises to async/await in vscode承诺在 vscode 中异步/等待
【发布时间】:2020-02-27 03:41:53
【问题描述】:

我使用 Visual Studio 代码并在那些文章中:

=> https://dev.to/ben/visual-studio-code-can-now-convert-your-long-chains-of-promisethens-into-asyncawait-automagically-1b1b

=> https://umaar.com/dev-tips/182-typescript-async-await/

=>https://code.visualstudio.com/updates/v1_28

他们说有一个功能是 vscode 可以将承诺转换为异步等待本身,但我无法为我的 .js 文件实现它。你能帮帮我吗?

祝你有美好的一天!

【问题讨论】:

    标签: javascript visual-studio-code async-await es6-promise


    【解决方案1】:

    我不知道,但我只是在我的 vscode 中尝试过。当您只需单击或双击您的功能时,就会出现一个灯泡,就像您复制的视频中一样。然后你点击它并点击“convert to async...”

    • 您需要将 javascript.validate.enable 设置为 true(vscode -> Preferences -> Settings)(或 cmd-,在 OSX 中)。

    • 我有版本 1.30.0 (1.30.0)。检查您的版本。

    • 如果这些都不起作用,那么您的 Promise 可能有问题。试试这些例子...

    TS:

    function example(): Promise<boolean> {
      return fetch('https://stackoverflow.com').then( result => result.ok; );
    }
    

    JS:

    function example() 
    { 
      return Promise.resolve(1) 
        .then((value) => { 
          console.log(value) 
        }) 
        .catch(err => { 
          console.log(err); 
        })
    }
    

    【讨论】:

    • 我的文件是 javascript vscode 的这个功能需要打字稿吗?
    • 没有。我现在尝试使用此代码:function example() { return Promise.resolve(1) .then((value) =&gt; { console.log(value) return Promise.reject(2) }) .catch(err =&gt; { console.log(err); }) } 试试它是否有效。如果它有效,也许您可​​以复制您正在使用的代码。还要确保在 vscode 的右下角将语言模式设置为 javascript。
    • 是的,你说得对,它也适用于我...我的文件太大,也许这是我的文件的问题。
    • 这里有同样的问题。感觉 VSC 只能将一小段代码从 promise 转换为 async/await。对于大型和更复杂的代码,您可能必须自己做。
    猜你喜欢
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 2018-02-03
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多