我试图弄清楚这种回报另一种承诺的承诺会成为回报的价值。这就是我在维基上的Q文档中读到的内容。 https://github.com/kriskowal/q#tutorial
这是理想的情况,因为我正在使用q-io / http,它使用promise来发出请求。但是,该函数在新的promise中返回正文的值。
而不是将我的其余代码嵌套在第一个函数中。我想在嵌套的promise完成时收到通知。但是,由于范围,我似乎无法做到。但我一直在读,我的外在功能应该成为内在承诺的价值。我错过了什么吗?
实施例
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应该成为内心的承诺。正确?
答案 0 :(得分:2)
我觉得getFiles应该成为内心的承诺。正确?
没有。承诺不会改变它的价值。但是,.then
方法确实会返回一个新的promise,该promise将使用“inner promise”read
方法的结果解析(将在解析getFiles
时调用)。
您可以将代码缩短为
module.exports = function (obj) {
return HTTP.request(obj).then(function(res) {
return res.body.read()
});
};