这是非常小的代码,我开始学习回调和承诺。这里的问题是使用异步函数等待。但它不会等待返回。将值打印为未定义。import React from 'react';export default function App () { function generaterandomNumber(){ let promise = new Promise(function(resolve, reject) { setTimeout(() => { var Number=Math.floor(Math.random() * 10); if(Number % 2 === 0){ console.log("resolve") resolve(Number) return Number; }else{ reject("Odd") } }, 500); }); } async function handleClick(event){ console.log("Before") var x = await generaterandomNumber(); console.log(x) console.log("After") event.preventDefault(); } return ( <div style={{textAlign: 'center'}}> <h1>Random Number generator</h1> <button onClick={handleClick}>Generate</button> </div> ); }另外,如果您知道有关回调、异步函数、承诺的优秀视频或文档材料,请告诉我,因为我对此回调没有明确的了解
2 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
您必须返回 Promise 对象。
等待与承诺编辑一起工作
function generaterandomNumber(){
return new Promise(function(resolve, reject) {
setTimeout(() => {
var Number=Math.floor(Math.random() * 10);
if(Number % 2 === 0){
console.log("resolve")
resolve(Number)
return Number;
}else{
reject("Odd")
}
}, 500);
});
}
开心每一天1111
TA贡献1836条经验 获得超13个赞
var x = await generaterandomNumber();
您正在等待的返回值generaterandomNumber
去仔细看看这个函数。
它没有return
声明,因此返回undefined
。
您在其中创建了一个 Promise,但不返回它。
添加回答
举报
0/150
提交
取消