如何访问 promise 中的函数

我在 React 应用程序中的代码

我有课:

class SampleModuleController{

    getSampleModuleSheet()
    {
       console.log("getSampleModuleSheet");
       return tableSheet;
    }
    retrivePageData(pageNumber,pageLength){
        
        console.log("retrivePageData calledd");
        let pageData= asyncAwaitService.findTablePageTestData(pageNumber,pageLength);
        return pageData;
    }
}

export let sampleModuleController = new SampleModuleController();

SampleModuleController 类延迟加载,其 getSampleModuleSheet 方法可以成功使用。

在 jsx 中:

<DataTable getPageData={import('../controllers/sampleModuleContrller').then(({sampleModuleController}) => {return sampleModuleController.retrivePageData;})} />

在js文件中:

async newPageManager(){
    console.debug("this.props.getPageData------",this.props.getPageData);
    let pageData = await props.getPageData(1,34);
}

输出

如何访问 promise 中的函数

那么我如何调用 promise 中的函数

song0007 回答:如何访问 promise 中的函数

在您的 jsx 中,很明显承诺返回了一个方法委托。

因此,当使用 this.props.getPageData 解析时,await 将导致一个方法委托本身被调用。

我们将按如下方式修改您的代码段;

async newPageManager(){
    console.debug("this.props.getPageData------",this.props.getPageData);
    let getPageData = await props.getPageData; 
    let pageData = getPageData(1,34);
}

此外,由于 props.getPageData 正在返回一个 promise,它是thenable

因此,您可以将该承诺的结果传递到 then 函数范围——类似于以下内容

async newPageManager(){
    console.debug("this.props.getPageData------",this.props.getPageData);
    let getFirstPagePromise = props.getPageData.then((fn) => fn.bind(this,1,32)); 
    let getFirstPage = await getFirstPagePromise;
    let pageData = getFirstPage();
}
本文链接:https://www.f2er.com/42767.html

大家都在问