array[4,2,7,1]创建一个返回Promise的函数.promise将计算一个数组的和,并在3秒钟后打印出来



这是我尝试过的-对我不起作用,我如何使用async await解决这个问题?

var array = [4, 2, 7, 1];
var prom = new Promise(function(myRsolve, myReject) {
var sum = array.reduce((x, y) => x + y);

setTimeout(function() {
myResolve(sum);
}, 3000);

prom.then(function(value) {
document.getElementById("tot").innerHTML = value;
})
});
<p>Array total 4+2+7+1: </p>
<h2 id="tot"></h2>

这是声明promise的正确语法:

let promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Resolved in 2000ms');
}, 2000)
})

所以在你的情况下,承诺是这样的:

var array = [4, 2, 7, 1];
// Will resolve after 3000ms
let prom = new Promise((resolve, reject) => {
var sum = array.reduce((x, y) => x + y);
setTimeout(() => {
resolve(sum);
}, 3000)
})
prom.then(function (value) {
document.getElementById("tot").innerHTML = value;
});
<p>Array total 4+2+7+1: </p>
<h2 id="tot"></h2>

最新更新