2017-01-18 9 views
0

Chrome DevToolsでは、解決された約束は、そのように展開および折りたたむことができるインタラクティブなオブジェクトを返します。どのように変数がコンソールに表示されるかを決定するには?

> Promise.resolve('foo') 
< ▶ Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: "foo"} 

ノードでは、解決された約束は文字列を返します。

> Promise.resolve('foo') 
< Promise { 'x' } 

変数を視覚化するときに何がコンソールに返されるかは、誰が決定するのですか?これは何とか標準化されていますか?

+0

..とInternet Explorerが "[オブジェクトオブジェクト]"を印刷します。ありがとうInternet Explorer! – Halcyon

+1

いいえ、標準化されていません。何も言うことはありません。 – trincot

+0

ノードは 'util.inspect'を内部的に使用しています。 IEは単に 'Symbol.toStringTag'プロパティを呼び出すのに対し、Chromeは独自の魔法を実行しますか? – Unidan

答えて

1

だから、あなたはあなたのコンソールログをフォーマットすることができ、ここでの基本はここで議論され、https://developer.mozilla.org/en-US/docs/Web/API/Console/log

あなたも行うことができます色やな、次のとおりです。

あなたの例からもHow do I create formatted javascript console log messages

、それかもしれません返される2つの全く異なる約束(librabies)であること。実行中のNodeのバージョンは何ですか?

各ブラウザでもコンソールが異なるように実装されているため、ブラウザ間やクロムからノー​​ドに同じ応答が得られません。あなたがあなたのコンソール(書式設定など)に追加できるようにするノードライブラリがありますが、私はそれがインタラクティブにするものはないと思っています(uiインタラクティブをブラウザではなく、端末)

+0

私はネイティブ(v8)約束を使用します。 Chromeでは 'V8 5.5.372.33'、ノードでは' V8 5.4.500.36'です。 – Unidan

関連する問題