我已经使用api调用以及Promise.all构建了数组“ newPlanets”
export function api_calling(){
var newPlanets = [];
const URLs = fetching() // function that returns an array of fetches
Promise.all(URLs).then(data => {
// push all "results" field into newPlanets
for (var i = 0; i < 7; i++) {
for (var n = 0; n < 10; n++) {
newPlanets.push(data[i].results[n]);
}
}
})
return newPlanets;
}
但是,当将其返回到另一个调用它的函数时:
class App extends Component {
constructor(props){
let data = api_calling()
console.log(data)
super(props);
}
}
控制台显示一个空数组。我如何能够将构造的数组返回到我的组件中?
答案 0 :(得分:0)
promise将异步解析,因此您不能在构造函数中编写return str.replace(/\n/g, "<br />");
。
您可以改为从let data = api_calling()
返回Promise.all
的结果,并在api_calling
中解析组件时设置组件状态。
示例
componentDidMount