Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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 如何从异步等待函数而不是Promise返回布尔值<;布尔值>;(打字脚本|反应)_Javascript_Reactjs_Typescript_Async Await - Fatal编程技术网

Javascript 如何从异步等待函数而不是Promise返回布尔值<;布尔值>;(打字脚本|反应)

Javascript 如何从异步等待函数而不是Promise返回布尔值<;布尔值>;(打字脚本|反应),javascript,reactjs,typescript,async-await,Javascript,Reactjs,Typescript,Async Await,所以我在React.js中工作,我有一个来自AntDesign的日历组件,其中包括一个disabledDate道具 此disabledDate属性接收一个布尔值作为响应,并检查日历组件中的每个日期 问题是,我的客户机给了我一个API,如果它找到一些数据(这意味着可以安排日期),它会向我发送一个200响应,如果找不到,则发送一个404响应 所以我要做的是,我创建了一个函数来检查给定的日期是否可用,并且基于这个函数的结果,disabledDate属性将启用或禁用日历组件中的日期 现在的问题是disa

所以我在React.js中工作,我有一个来自AntDesign的日历组件,其中包括一个disabledDate道具

此disabledDate属性接收一个布尔值作为响应,并检查日历组件中的每个日期

问题是,我的客户机给了我一个API,如果它找到一些数据(这意味着可以安排日期),它会向我发送一个200响应,如果找不到,则发送一个404响应

所以我要做的是,我创建了一个函数来检查给定的日期是否可用,并且基于这个函数的结果,disabledDate属性将启用或禁用日历组件中的日期

现在的问题是disabledDate无法接收承诺,它需要一个布尔值,当我将其转换为async时,它显然会返回一个承诺而不是布尔值

有什么解决办法吗?或者我完全没有抓住要点

这是我的职责

export const isDateAvailable=async(
专业编号:编号|未定义,
serviceID:编号|未定义,
日期:时刻,时刻
) => {
常数体={
专家编号:specialistID,
服务id:serviceID,
fecha:日期格式(“YYYY-MM-DD”),
};
const response=wait axios.get(API_URL+“/disponilidadatencion”{
params:body,
});
如果(response.status==404){
返回false;
}
返回true;

};
理想的方法是使用状态变量保存
isDateAvailable()
响应,并在
日历
组件中使用状态变量

您需要决定的另一件事是,当您使用isDateAvailable()函数时,组件应该如何工作。它可以隐藏或处于禁用状态,具体取决于您的用例

下面的代码示例可供参考,它在获取api调用时禁用日历组件

导出默认日历包装器=()=>{
常量[isDisabled,setDisabled]=useState(false)
useffect(()=>{
isDateAvailable(
选择专家?特别是STA_id,
所选服务?.servicio_id,
现在的
)。然后(dateAvailability=>{
setDisabled(当前<力矩()| |!日期可用性)
});
}, [])
返回(
)
}

您将始终得到true,您需要使用async Wait或Enables。是的,这就是我试图解决的问题,因为我无法将disabledDate转换为async。正如所写的那样,函数将始终返回true,它已返回布尔值。是否希望/尝试返回提取请求的值?应改为设置状态,因为
isDateAvailable()
是异步的。将状态参数传递给
,无论采用哪种方式,都需要等待axios承诺的解决。需要调用
isDateAvailable
的驱动力是什么?这是对一些互动/事件的回应吗?您应该将结果保存在状态,并在数据准备就绪且可用时呈现日历。