Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Typescript和fetch处理204状态?_Javascript_Typescript_Fetch - Fatal编程技术网

Javascript 如何使用Typescript和fetch处理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

我正在尝试使用fetch和typescript创建post请求。 但无法创建204状态处理程序

我已经尝试返回带有空值的承诺,但它不起作用

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> => {