嵌套与q-io承诺

我试图理解那个承诺,回报另一个承诺成为回报价值的想法。 这就是我在wiki上的Q文档中阅读的内容。 https://github.com/kriskowal/q#tutorial

这是理想的情况,因为我使用q-io / http使用promise来发出请求。 然而,该函数返回一个新的承诺身体的价值。

而不是将我的代码的其余部分embedded到我的第一个函数中。 我希望在嵌套承诺完成时得到通知。 但是,由于范围,我似乎无法做到这一点。 但是我一直在读,我的外在function应该成为内在承诺的价值。 我错过了什么吗?

防爆。

module.exports = function (obj) { var getFiles = HTTP.request(obj); getFiles .then(function(res) { return res.body.read() }); return getFiles; }; 

我希望在res.body.read()使用Q.all()实现其承诺时得到通知,但我不知道如何获得该值。 我觉得getFiles应该成为内心的承诺。 对?

我觉得getFiles应该成为内心的承诺。 对?

不,承诺不会改变它的价值。 然而, .then方法确实会返回一个新的promise,这个promise将被parsing为“inner promise” read方法的结果(当getFiles被parsing时会被调用)。

你可以缩短你的代码

 module.exports = function (obj) { return HTTP.request(obj).then(function(res) { return res.body.read() }); };