簡體   English   中英

chrome 調試器承諾在暫停時無法解決?

[英]chrome debugger promises dont resolve while paused?

也許我沒有正確調試承諾,但基本上如果您在斷點處停止並運行異步代碼,它實際上不會在您恢復執行之前完成,這是一個問題。 Debugger 允許你快速嘗試多種 api 方法......但如果你恢復它,你就不能

debugger;
//now type the following in console
Promise.resolve().then(()=> console.log('done'));

一個可能的解決方法是將debugger放在.then回調中。 這不適用於所有情況,但它適用於我在退出之前調試 node.js 腳本的特殊情況:

  1. 將此插入到要調試的 JS 代碼中

    debugger;
  2. 當調試器停止時,在控制台提示符下鍵入以下內容:
     expressionReturningPromise().then( r => { console.log('done'); debugger; });
  3. 恢復腳本執行

然后,開發工具將在.then回調中的調試器上暫停,您將獲得可用於檢查的 promise 的已解析值。

它不會執行,因為.then的函數僅在當前“線程”完成時調用。 這對於所有異步調用(例如setTimeout都是相同的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM