首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从Promise到Reducer获取值

无法从Promise到Reducer获取值
EN

Stack Overflow用户
提问于 2019-10-08 21:44:39
回答 1查看 40关注 0票数 1

我是Promises和Async/Await的新手,我想从mongoDB获得一组用户,但当我获得它时,我会将其作为promise接收,并且我想在我的reducer中使用它。我怎么能做到这一点。下面是我的代码:

代码语言:javascript
复制
import {combineReducers} from 'redux'
import {stitchClient} from '../pages/const'
import {RemoteMongoClient} from 'mongodb-stitch-browser-sdk';
import {DataBase} from '../pages/const';

const mongodb = stitchClient.getServiceClient(
  RemoteMongoClient.factory,
  "mongodb-atlas"
);
const db=mongodb.db(DataBase);
const collection= db.collection('User');

async function fetch(){

    return (
        collection.find().toArray()
        .then(items => {
        console.log(`Successfully found ${items.length} documents.`);
        localStorage.setItem('DataTable',JSON.stringify(items));
        return items;
        })
        .catch(err => console.error(`Failed to find documents: ${err}`))
    )
}

async function GetDataFromFetch(){
    return await fetch();
}

const AllUsersReducer=()=>{
    console.log('My Data',GetDataFromFetch());
    return (GetDataFromFetch())
};

export default combineReducers({
    AllUsers:AllUsersReducer,
});

日志是这样的:Console Log

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-08 22:02:30

您需要在AllUsersReducer中使用async/await

代码语言:javascript
复制
const AllUsersReducer = async () => {
    const fetchData = await GetDataFromFetch()
    console.log('My Data', fetchData);
    return fetchData
}; 

GetDataFromFetch是异步的,这意味着它的结果将是一个Promise。要从该Promise获得结果,您需要使用await

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58287647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档