javascript - 需要帮助解决承诺并分配返回值
问题描述
我正在尝试将格式化的(JSON)API 结果传递到 redux 商店。我能够检索数据并解决承诺,但我无法在“.then”方法中分配返回的数据。
你能告诉我我做错了什么吗?另外我是新人,所以如果我问错了问题,请多多关照。谢谢你。
减速器
import apiTest from "../api/ApiTest";
const initialState = {
listData: null
};
const contactListReducer = (state = initialState, action) => {
switch (action.type) {
case "FETCH":
console.log("inside switch (reducer) ");
return getData(state);
default:
return state;
}
};
const getData = (state, action) => {
console.log("Inside getData");
let data;
let request = apiTest().then((results) => {
data = results;
console.log("INSIDE THEN");
console.log(data);
});
console.log("OUTISIDE THEN");
console.log(request);
return Object.assign({}, state, {
listData: request
});
};
export default contactListReducer;
API 代码:
import React, { useEffect, useState } from "react";
import axios from "axios";
const apiCall = async () => {
try {
const payload = await fetch("https://jsonplaceholder.typicode.com/users");
const results = await payload.json();
// console.log(results);
return results;
} catch (err) {
console.log(`error found of type ${err}`);
}
};
export default apiCall;
解决方案
推荐阅读
- laravel - laravel 检查是否未添加下一个数据清除先前添加的数据
- mysql - mysqld.service 的作业失败,因为过于频繁地尝试启动服务。参见“systemctl status mysqld.service”
- python - Numpy reshape - 是否复制数据?
- node.js - 未捕获(承诺中)错误:网络错误:JSON 中位于位置 0 的意外令牌 I
- javascript - 池请求与批处理请求
- cmake - cmake 更改 gtest 的编译器
- java - @Scheduled 作业阻塞 Quartz 作业
- macos - 构建 golang 应用程序导致“TARGET_OS_IPHONE”未定义错误
- ckeditor - 标签的ckeditor样式集-在a中渲染svg
- javascript - 如何在页面重新加载超过 10 像素时激活颜色更改导航