Why no-return-await vs const x = await?

后端 未结 3 1552
野趣味
野趣味 2020-12-29 02:29

What is the difference between

return await foo()

and

const t = await foo();
return t

http://eslint.org/d

3条回答
  •  礼貌的吻别
    2020-12-29 02:46

    Basically, because return await is redundant.

    Look at it from a slightly higher level of how you actually use an async function:

    const myFunc = async () => {
      return await doSomething();
    };
    
    await myFunc();
    

    Any async function is already going to return a Promise, and must be dealt with as a Promise (either directly as a Promise, or by also await-ing.

    If you await inside of the function, it's redundant because the function outside will also await it in some way, so there is no reason to not just send the Promise along and let the outer thing deal with it.

    It's not syntactically wrong or incorrect and it generally won't cause issues. It's just entirely redundant which is why the linter triggers on it.

提交回复
热议问题