预期在箭头功能警告中返回值

时间:2020-04-25 00:45:01

标签: javascript

此代码段按ID查找用户,如果找不到用户,则会创建一个,但是...

我收到“预期在箭头函数array-callback-return中返回值”警告

findUser(id)
    .then((user) => {
        if (user.empty) {
            return createUser()
                .then((user) => setUser(user));
        } else {
            const updatedUser = user.docs[0];
            return {
                id: updatedUser.id,
                ...updatedUser.data(),
            };
        }
    })

我无法摆脱它,我不确定为什么会这样。 谢谢!希望这段代码对您有所帮助。真是一团糟:)

1 个答案:

答案 0 :(得分:0)

问题在于您不能始终从findUser的{​​{1}}内部返回值。您应该返回.then调用:

createUser

这很有用,因为这意味着if (user.empty) { return createUser() .then createUser完成时,最终的Promise链将解决。否则,setUser / createUser Promise将与外界断开连接-您将无法确定它何时完成或处理其错误。

请注意,您不需要调用setUser的匿名回调-您可以将setUser函数本身传递给setUser

.then

您还可以考虑使用return createUser() .then(setUser); / async,控制流程将更加清晰:

await