JS Arrow fuinction返回self-not函数



在React中,我使用实用程序函数来处理api调用。当Arrow函数不再是匿名的时,它会返回一个挂起的promise,这正是我想要的。但是,当箭头函数是匿名的时,它会返回函数。

有没有办法在一行中返回一个待定的承诺?

以下是非匿名时的函数:

const list = () => {
let res = async () => await api.get("list");
return res();
}

以下是它看起来像匿名的:

const list = () => {
return async () => await api.get("list")
}

因为你只是返回函数,而不是执行它。这个执行函数:

res();

在第二个例子中,没有任何地方有额外的括号来执行它

const list = () => {
return (async () => await api.get("list"))();
}

或者,更简单的是,首先不要将操作包装在不必要的函数中:

const list = () => {
return api.get("list");
}

在第二个例子中,您返回的是一个函数,而不是函数的结果。将函数存储在对象中并调用函数:

const list = () => {
return (async () => await api.get("list"))();
}

您在第二种情况下返回的是函数res,而不是res的输出。您可以使用IIFE根据需要返回res的值:

const list = () => {
return api.get("list")
}

最新更新