Qn。创建一个 JavaScript Promise,在 2 秒延迟后,要么解析并显示消息“Hello World”,要么拒绝并显示错误消息“发生错误”。结果(解决或拒绝)应由随机条件确定,确保每次代码运行时出现任一情况的概率为 50/50。
解决方案代码已在描述中给出。但是,我尝试传递基于发生解析/拒绝的随机值,但该值在 then 中显示为未定义并捕获部分代码。
const Promises = new Promise((resolve, reject) =>
{
let ch = Math. Random()>0.5;
setTimeout(() =>
{
if(ch)
resolve("Hello World",ch);
else
reject("Error Occurred!!!",ch);
},2000);
});
Promises.then((msg,ch) =>
{
console.log(msg);
console.log(ch);
}).catch((msg,ch)=>
{
console.log(msg);
console.log(ch);
});
输出1
Hello World
undefined
输出2
Error Occurred !!!
undefined
Promise 返回单个值(可以是字符串、数组或对象等任何内容),就像普通函数一样。