在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")
}