javascript - 为什么这等待返回未定义?
问题描述
我有以下代码:
const checkBatchStatus = async (batchId: number) => {
let result = await fetchcall("POST", "api/batch/status", { "BatchId": batchId })
.then(result => {
Promise.resolve(true);
})
.catch(err => {
Promise.resolve(false);
});
};
调用方代码如下:
async function isBatchRequestCompleted(batchId: number) {
let status = await checkBatchStatus(batchId);
console.log(`status is ${status}`);
状态始终未定义。不明白为什么。
如果我将 checkBatchStatus 更改为简单地返回 false,那么我得到的状态等于 false。
const checkBatchStatus = async (batchId: number) => {
return false;
};
一个善良的灵魂可以向我解释我所看到的吗?
解决方案
您没有在函数中返回值checkBatchStatus()
。如果您只想要一个布尔值,那么调用 Promise.resolve()
in 回调函数是一个错误的想法。.then()
const checkBatchStatus = (batchId: number) => {
return fetchcall("POST", "api/batch/status", { "BatchId": batchId })
.then(result => {
return true;
})
.catch(err => {
return false;
});
};
推荐阅读
- asp.net-core - 如何使用 FormData 将文件和数据数组发送到 API 服务器
- c++ - OpenGL glDrawArraysInstanced 比 glDrawElementsInstanced 更快:有没有办法让 glDrawElementsInstanced 更快?
- r - OSM - XML 文件中的标签之间的迭代
- nginx - NGINX 反向代理失败并出现 404
- c++ - C++ 文件解析器和函数提取器
- tomcat - 在 Ubuntu 启动时停止自动启动 Tomcat
- php - 再次将获取数据发送到php中的另一个页面
- bezier - 如何沿路径长度以设定的比例沿贝塞尔路径采样点
- python - 不活动时自动注销的用户在 Django 中仍显示为活动使用
- ios - 如何快速获得 RGB 颜色?