2 回答
TA贡献1818条经验 获得超7个赞
你忘了回来Promise.all。
renderRedirect = () => {
// added return keyword
return Promise.all([
this.props.getChildrens(),
this.props.getTeachers(),
this.props.getTeachers()
]).then(() => {
return 'test';
});
};
但是你也应该注意到console.log(this.renderRedirect())仍然不起作用,因为你需要await为承诺的结果。
你应该做这样的事情:
let result = await this.renderRedirect()
console.log(result)
TA贡献1895条经验 获得超7个赞
三个问题:
您需要
return
调用Promise.all
的then
处理程序的结果,或者使用简洁的函数体,以便隐式返回。如果您要 make
renderRedirect
async
,则使用await
.您正在从
renderRedirect
. 您需要使用该承诺,而不是输出它。
要处理 #1 和 #2,要么:
// Concise arrow function, not `async`
renderRedirect = () => Promise.all([
this.props.getChildrens(),
this.props.getTeachers(),
this.props.getTeachers()
]).then(() => {
return 'test';
});
或
// `async` function
renderRedirect = async () => {
await Promise.all([
this.props.getChildrens(),
this.props.getTeachers(),
this.props.getTeachers()
]);
return 'test';
};
处理#3:
this.renderRedirect().then(result => {
console.log(result);
});
或者如果该代码在async函数中:
console.log(await this.renderRedirect());
添加回答
举报