【问题标题】:Typescript async method declaration打字稿异步方法声明
【发布时间】:2019-03-25 09:47:09
【问题描述】:

有什么区别:

public myFunction = async (
    req: Request, 
    res: Response
): Promise<Response> => {
    return await myOtherFunction() 
}

public async myFunction (
    req: Request, 
    res: Response
): Promise<Response> {
   return await myOtherFunction()
}

我主要使用第一个示例,但是在转换不是async 的函数时,我的代码编辑器(vs code)使用第二个示例。

可能不相关,但我使用的是 typescript 3.1.3

【问题讨论】:

    标签: typescript asynchronous es6-promise


    【解决方案1】:

    第一个是arrow function,第二个是normal function

    主要区别在于箭头函数this 指的是父对象/类,而普通函数this 指的是函数本身。如果您要在节点中使用 arrow function 并在顶层使用它,它将引用 undefined

    reference code,这里是用 React.js 编写的小参考代码,只是为了演示用例。

    【讨论】:

    • 根据你的链接,第一个是普通函数,第二个是箭头函数没有?
    • 我错了拼写它。它实际上是另一种方式,我将其修复为答案。好的通知!
    • 非常感谢,我不太明白其中的区别(没有经常使用 this 关键字),但您的回答完全解释了我的疑惑
    • 为了让事情更清楚,我还在codesandbox 示例中添加了top level 箭头函数的示例。
    • React.js 这样的一些框架经常使用this-keyword,所以如果你进入其中一个框架,你就会习惯它们。否则,它不会对您正在使用哪些功能产生太大影响。
    猜你喜欢
    • 1970-01-01
    • 2021-02-06
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多