All files asyncSum.ts

91.66% Statements 22/24
75% Branches 3/4
100% Functions 1/1
91.66% Lines 22/24

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 241x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 5x 2x 2x 2x     2x 2x 1x 1x 1x
/**
 * 任務:實作一個函式 `asyncSum`,該函式應該能夠計算陣列中所有數字的總和。
 * 範例:asyncSum([1, 2, 3, 4, 5]) 應該回傳 15
 * @param numbers - 一個數字陣列
 * @returns - 回傳一個 Promise,該 Promise resolve 的值應該是陣列中所有數字的總和
 */
 
 
export function asyncSum(numbers: number[]): Promise<number> {
    return new Promise((resolve, reject) => {
        try {
            // 請在此處寫下你的程式碼
            resolve(numbers.reduce((acc, cur) => {
                return acc + cur;
            }, 0));
 
        } catch (error) {
            reject(error);
        }
    });
}
 
 
// 備註:題目中即使累加操作本身是同步的,也可以使用 Promise 來模擬非同步的情況。這可以讓學生練習如何使用 Promise 來處理非同步操作