嵌套与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() }); };