我在某个地方看到了这段代码,只是很好奇,为什么需要在返回类型中指定Promise
?函数不是返回对象的数据吗?什么是| null for
?
const getSomething = async (
id: string
): Promise<UserData | null> => {
try {
const { data } = await axios.get(
`${API}/user?id=${id}`
);
return data;
} catch (err) {
if (err.response) {
return err.response.data;
}
return null;
}
};
异步函数总是返回Promises-这样,可以在函数内部等待异步await
,并且可以在函数外部使用结果。
[此处,getSomething
尝试从axios调用中检索数据。如果调用成功,则仅返回数据:
return data;
但是如果调用没有成功,它将返回以下内容之一:
if (err.response) {
return err.response.data;
}
return null;
如果抛出axios
调用,和没有err.response
属性,则将返回null
。如果忽略了| null
,则无法正确键入getSomething
功能。