Javascript 如何使用Typescript和fetch处理204状态?
我正在尝试使用fetch和typescript创建post请求。 但无法创建204状态处理程序 我已经尝试返回带有空值的承诺,但它不起作用Javascript 如何使用Typescript和fetch处理204状态?,javascript,typescript,fetch,Javascript,Typescript,Fetch,我正在尝试使用fetch和typescript创建post请求。 但无法创建204状态处理程序 我已经尝试返回带有空值的承诺,但它不起作用 postRequest=async(url:string,body:any):Promise=>{ const response=等待获取(url{ 方法:“POST”, 标题:{ “内容类型”:“应用程序/json;字符集=utf-8” }, body:JSON.stringify(body) }); //这是我的问题 如果(response.status
postRequest=async(url:string,body:any):Promise=>{
const response=等待获取(url{
方法:“POST”,
标题:{
“内容类型”:“应用程序/json;字符集=utf-8”
},
body:JSON.stringify(body)
});
//这是我的问题
如果(response.status==204){
//错误为:“类型'null'不可分配给类型'T'
返回null;
//我试着回报我的承诺,但没有成功。
//错误是:“类型为“null”的参数不可分配给
//类型为'T | PromiseLike | undefined'的参数。”
返回新承诺(resolve=>resolve(null));
}
如果(!response.ok){
抛出新错误(response.statusText);
}
返回wait response.json()作为承诺;
};
postRequest('request',{someValue:1234});
如果希望函数返回可能的null
,则必须将其添加到返回类型中
postRequest = async <T>(url: string, body: any): Promise<T|null> => {
...
}
使用来表示返回了承诺
或承诺
:
postRequest = async <T>(url: string, body: any): Promise<T | null> => {
postRequest=async(url:string,body:any):Promise=>{
在本例中,返回类型为
Promise
,这表示T
或null
将用于已解析的承诺。有两件事,首先,您可以使用静态方法(如:Promise.resolve(null))简单地将值封装在承诺中:;
因此无需调用构造函数。根据错误消息,undefined是一个有效值,因此除非您确实需要null,否则您始终可以返回Promise.resolve(undefined)
。
postRequest = async <T>(url: string, body: any): Promise<T | null> => {