2017-11-28 4 views
0

Ich verwende webpack, um mein Projekt zu kompilieren, und dann fand ich this wird kompiliert zu _this2, wenn es ein Versprechen gibt.Warum kann Chrome-dev-tools das nicht korrekt in einem Versprechen widerspiegeln?

Und das Problem ist, dass, wenn ich einen Haltepunkt in der Versprechen nehmen, this wird immer undefined in Chrome-Dev-Tools.

Ist es ein Fehler? Ist es schwierig für das Team von Chromium, das Problem zu lösen?

nun der Quellcode:

enter image description here

der kompilierte Code von webpack:

enter image description here

weil es eine Quelle-Karte ist, Chrom wird für mich, den Quellcode anzuzeigen und this außerhalb des Versprechens wird korrekt inspiziert.

enter image description here

aber, this innerhalb der Versprechen wird undefined

enter image description here

Antwort

2

Wie Sie darauf hinweisen, wenn der Code es5 der resultierende Code kompilieren verwendet den _this Trick, um dies zu erfassen von der Deklaration Kontext. Das Problem besteht darin, dass Quellkarten im Wesentlichen nur Textkarten sind, die einen Teil des kompilierten Codes zurück auf den Quellcode abbilden. Dies bedeutet, dass Chrome (oder ein anderer aktueller Debugger) keine Möglichkeit haben wird zu erraten, dass this, das unter dem Cursor steht, eine andere Bedeutung im Quellcode hat.

Eine einfache Möglichkeit, um dies zu umgehen, ist eine Uhr für _this (oder this_2 in Ihrem Fall), die Ihnen zeigt, die dies erfasst.

+0

https://bugs.chromium.org/p/chromium/issues/detail?id=327092 – zzzgoo

Verwandte Themen