gpt4 book ai didi

javascript - 参数的值是如何分配给这个函数的?

转载 作者:行者123 更新时间:2023-12-03 07:17:50 26 4
gpt4 key购买 nike

我正在学习 Promise 教程,但我无法理解如何为参数 toss 分配来自 function tossASix() 的值。如果有人能花时间解释一下,我们将不胜感激。

function dieToss() {
return Math.floor(Math.random() * 6) + 1;
}

function tossASix() {
return new RSVP.Promise(function(fulfill, reject) {
var n = Math.floor(Math.random() * 6) + 1;
if (n === 6) {
fulfill(n);
} else {
reject(n);
}
});
}

function logAndTossAgain(toss) {
console.log("Tossed a " + toss + ", need to try again.");
return tossASix();
}

function logSuccess(toss) {
console.log("Yay, managed to toss a " + toss + ".");
}

function logFailure(toss) {
console.log("Tossed a " + toss + ". Too bad, couldn't roll a six");
}

tossASix()
.then(null, logAndTossAgain) //Roll first time
.then(null, logAndTossAgain) //Roll second time
.then(logSuccess, logFailure); //Roll third and last time

最佳答案

.then 接受两个参数,这两个参数实际上都是单参数函数。在前两个 then 中,执行函数均为 null,而拒绝函数为 logAndTossAgain(toss)。 Promise 将根据其中的标准调用履行函数或拒绝函数(在本例中,无论随机结果是否为 6)。因此,随机掷骰的值 n 将被传递给 logAndTossAgain 函数(如果它不是 6)。这就是你的 toss 参数的值。

关于javascript - 参数的值是如何分配给这个函数的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36342097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com