[英]Asynchronous functions,promises
This is very small code where I started to learn callbacks and promises.The problem here is have use async function an await.but it doesn't wait for the return.Prints the value as undefined.这是我开始学习回调和承诺的非常小的代码。这里的问题是使用异步函数和等待。但它不等待返回。将值打印为未定义。
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>
);
}
And also if you know good video or documentation material regarding callbacks,async functions,promises please let me know since I have no clear idea about this callbacks此外,如果您知道关于回调、异步函数、promise 的优秀视频或文档材料,请告诉我,因为我对这个回调没有明确的想法
You must return Promise object .您必须返回 Promise 对象。
await work with promise edit等待与承诺一起工作
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);
});
}
var x = await generaterandomNumber();
You are awaiting the return value of generaterandomNumber
您正在等待
generaterandomNumber
的返回值
Go and look at the function more carefully.去仔细看看函数。
It does not have a return
statement so it returns undefined
.它没有
return
语句,所以它返回undefined
。
You create a Promise inside it, but you don't return it.你在其中创建了一个 Promise,但你没有返回它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.