promise实现猜数字游戏
时间: 2023-08-12 15:58:08 浏览: 46
可以使用Promise来实现一个简单的猜数字游戏。下面是一个示例代码:
```javascript
function guessNumber() {
const secretNumber = Math.floor(Math.random() * 100) + 1;
return new Promise((resolve, reject) => {
function makeGuess() {
const userInput = prompt('猜一个1到100之间的数字:');
if (userInput === null) {
reject('游戏已取消');
return;
}
const guess = parseInt(userInput);
if (isNaN(guess)) {
console.log('请输入一个有效的数字');
makeGuess();
return;
}
if (guess === secretNumber) {
resolve('恭喜,你猜对了!');
} else if (guess < secretNumber) {
console.log('太小了,请继续猜');
makeGuess();
} else {
console.log('太大了,请继续猜');
makeGuess();
}
}
makeGuess();
});
}
guessNumber()
.then((message) => {
console.log(message);
})
.catch((errorMessage) => {
console.log(errorMessage);
});
```
在这个例子中,我们使用Promise来包装猜数字的逻辑。游戏开始时,生成一个随机的秘密数字。然后,通过递归调用`makeGuess`函数来获取用户的猜测,并根据用户的猜测与秘密数字进行比较。如果猜对了,就调用`resolve`函数来结束Promise,并传递一个成功的消息。如果用户取消了游戏,就调用`reject`函数来结束Promise,并传递一个失败的消息。
在调用`guessNumber`函数后,我们使用`.then`和`.catch`来处理Promise的结果。如果猜对了,就打印出成功的消息;如果游戏取消或出现错误,就打印出相应的错误消息。
请注意,这个例子是在浏览器环境下运行的,使用`prompt`来获取用户的输入。如果在其他环境中运行,可能需要使用其他方式获取用户的输入。