异步函数,承诺
Asynchronous functions,promises
这是我开始学习回调的非常小的代码,这里的 promises.The 问题是使用异步函数 await.but 它不等待 return.Prints 作为值未定义。
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>
);
}
此外,如果您知道关于回调、异步函数、promises 的好视频或文档material,请告诉我,因为我对这些回调没有清晰的认识
var x = await generaterandomNumber();
您正在等待 generaterandomNumber
的 return 值
再去仔细看看函数
它没有 return
语句 所以它 returns undefined
.
您在其中创建了一个 Promise,但您没有 return 它。
您必须 return Promise 对象。
await 使用 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);
});
}
这是我开始学习回调的非常小的代码,这里的 promises.The 问题是使用异步函数 await.but 它不等待 return.Prints 作为值未定义。
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>
);
}
此外,如果您知道关于回调、异步函数、promises 的好视频或文档material,请告诉我,因为我对这些回调没有清晰的认识
var x = await generaterandomNumber();
您正在等待 generaterandomNumber
再去仔细看看函数
它没有 return
语句 所以它 returns undefined
.
您在其中创建了一个 Promise,但您没有 return 它。
您必须 return Promise 对象。
await 使用 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);
});
}