今日は私に大きな驚きがありました。私は基本的に次のようになり特急ルートハンドラの束を越えカム(複数あると、実際の関数が呼び出されますが、再現性のために:Promise.thenでは、ポイントフリーのファッションでExpressとcalling response.jsonが動作しません。
app.get('/api/foo', (req, resp) => {
Promise.resolve({one: 1})
.then(data=>resp.json(data))
})
だから私は、賢いJavaScriptのプログラマが考えるほど、私は離れてからステップ実行することができます匿名関数とちょうど直接、関数呼び出しresp.jsonを聞かせて:
app.get('/api/foo', (req, resp) => {
Promise.resolve({one: 1})
.then(resp.json)
})
しかし、私は、応答を取得していないと、ノードコンソールでこれを見ないことをしようとすると:
Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'app' of undefined
.then(resp.json)と.then(データ=> resp.json(データ))私の目に相当する必要があります。それは確かに範囲のことですが、私は説明とおそらく回避策が大好きです。 resp
がjson
関数によって使用されるので、より多くの可能性が高いデータがresp
オブジェクト内に含まれる、それ自身の特性を持つオブジェクトであるためだ
ハ。あなたは正しいです。私はちょうどそれを考え出した。ありがとう!しかし、その '醜いそのように、太い矢印の機能を使用することもできます。 –