首页 > 解决方案 > 为什么这等待返回未定义?

问题描述

我有以下代码:

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;
};

一个善良的灵魂可以向我解释我所看到的吗?

标签: javascriptes6-promise

解决方案


您没有在函数中返回值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;
    });
};

推荐阅读