'use strict';
const sum = num => {
let acc = 0;
while (num) {
acc = acc num;
num = num - 1;
}
return acc;
};
new Promise((res, reject) => {
document.querySelector('body').style.backgroundColor = 'red';
res();
}).then(() => {
const res = sum(1000000000);
console.log(res);
});
我想先將 bgcolor 更改為紅色并獲得 sum 函式的結果。
但它運作不佳。
收到求和結果后,更改背景顏色。
我錯過了什么?
uj5u.com熱心網友回復:
我相信代碼作業正常。但是,在設定了背景顏色之后,您會立即用一個極長的回圈鎖定處理器。瀏覽器在計算 1 到 10 億的總和之前沒有時間為背景著色。雖然背景顏色的屬性將在函式之前設定,但實際重新渲染需要非零時間。
您可以通過在讓承諾回傳之前設定延遲來看到這一點。在這種情況下(或者至少在我的處理器上),背景將首先變成紅色。
'use strict';
const sum = num => {
let acc = 0;
while (num) {
acc = acc num;
num = num - 1;
}
return acc;
};
new Promise((res, reject) => {
document.querySelector('body').style.backgroundColor = 'red';
setTimeout(res, 250);
}).then(() => {
const res = sum(1000000000);
console.log(res);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/420416.html
標籤:
上一篇:.env檔案變數無法讀取
