Promise與錯誤
複習Promise反應、all、catch恢復、async返回值、JSON解析及嚴格模式凍結屬性賦值。
辨認失敗階段和處理器返回的值。
正確數記錄六道給定Node 24 ES模組任務中匹配答案的次數,不是開發者等級、百分位、僱主門檻或資格。任何正確數都能讀全部答案及四份完整指南。
六個確定的非同步與失敗例子
Promise題用已落定輸入或直接返回值的async函式,問同步push與反應先後、Promise.all收集值、catch替代值及async結果。錯誤題區分有效JavaScript在執行時解析無效JSON,與嚴格模式給凍結屬性賦值。無題要求猜網路響應、計時延遲或無關宿主介面順序。
跟隨catch返回後的值
新不計分例從Promise.reject("no")開始,接catch(()=>6),再在下一then列印value+2。處理器返回普通數值6,讓下一個Promise履行,後面的回撥列印8。若catch改為拋錯或返回另一個拒絕Promise,後續不同。分別追蹤返回值與下一Promise狀態,不認為進入catch就永久不能履行。
分清同步階段
題定排序例先在模組同步階段執行普通push,Promise反應隨後作為作業執行,下一反應在前者改變陣列後列印。這支援該確定軌跡,不是籠統斷言瀏覽器與Node所有事件迴圈相同、或一切回撥都晚於所有迴圈;更廣主張須說明宿主、介面及位置。
把all與async讀成Promise操作
本題Promise.all按輸入順序收兩個履行值,不做求和,也不按猜測完成順序選擇。async函式返回可用所返回數值履行的Promise,then收到該數值;catch返回普通值可使下游履行。例子不建立組合Promise拒絕會取消其他輸入工作的結論,取消是另一個問題。
區分語法失敗與列印的錯誤名稱
有效模組可呼叫JSON.parse解析不完整JSON,捕獲SyntaxError物件並列印名稱,這不同於題組另兩道宣告題在執行前失敗。凍結屬性題中,ES模組嚴格模式使不可寫賦值拋TypeError,原數值不變。選答案前先說明預測的是解析、拋錯、捕獲,還是列印字串。
寫簡短的狀態與輸出軌跡
用新.mjs、虛構標籤且無外部請求,先標同步步驟,再記每個反應的輸入、返回值與下一狀態。恢復路徑與明確拋錯分開測,避免輸出互相掩蓋;按宣告環境先預測再執行。這是可選本機練習,沒有保證提高速率;網站不執行訪問者指令碼或檢視真實生產日誌。
使用完整複習,不附職業標籤
六個匹配選擇只描述選定任務,不確定能否診斷生產競態、設計可靠非同步軟體或滿足僱主要求。任何正確數都免費給解析與全文,無校準能力檔位或證書。題組固定,兩語英文程式碼一致;重做前讀答案可提高記憶,不證明遷移到陌生非同步程式碼。
回顧:返回恢復值與再次丟擲分別追蹤
新例建立兩個鏈:const recovered=Promise.reject("retry").catch(()=>8); const propagated=Promise.reject("retry").catch(reason=>{throw reason;}).catch(reason=>"caught:"+reason); console.log((await Promise.all([recovered,propagated])).join("|"));輸出8|caught:retry。第一條catch返回普通值使後續履行;第二條先丟擲,讓下一Promise拒絕,再由後一個catch返回字串恢復。Promise.all按給定輸入順序收值,這個輸出不是完成速度比較。該獨立.mjs在Node 24.19.0核過,無外部請求或定時器,不加入正確數。
分項複習指南
每個匹配答案記一道正確
每個匹配答案加1題,其他有效選擇加0題。四組六題合成正確數/24,無加權、部分分、反向計分或時間獎勵。24題有效選擇前不給個人正確數,不默補漏題。
使用完整程式碼與答案核對
報告保留每段原創程式碼、所選、答案及解析。零分、部分答對、全對都可讀四份全文。2/6只是所給六題兩個匹配答案,不是百分位、校準開發者等級、招聘線或資格。
固定且宣告環境的練習題組
題組按Node 24.19.0的.mjs ES模組實跑,選定ECMAScript 2024核心規則作參考,不聲稱覆蓋最新特性或所有瀏覽器、Node宿主介面行為相同。不評專案開發、架構或生產除錯。重測還是24題,約十分鐘是編輯估計,不是實測計時基準。
原創片段與核過的結果
費馬編寫程式、干擾項、解析及指南,來源說明選定語言或模組規則,不搬其例子或專有招聘題。本獨立練習無廠商背書或認證。程式碼作為轉義文本顯示,選擇在瀏覽器計分,不執行訪問者指令碼。

