我试图理解这样一种想法,即返回另一个承诺的承诺将成为返回的值。这就是我在维基上的Q文档中读到的内容。https://github.com/kriskowal/q#tutorial
这是一种理想的情况,因为我使用的是q-io/http,它使用promise来发出请求。但是,函数会在一个新的promise中返回实体的值。
而不是将我的其余代码嵌套在我的第一个函数中。我希望在嵌套的promise完成时得到通知。然而,由于范围的原因,我似乎做不到。但我一直在读,我的外在功能应该成为内在承诺的价值。我是不是错过了什么?
Ex。
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将使用"内部promise"read
方法的结果进行解析(解析getFiles
时将调用该方法)。
您可以将代码缩短为
module.exports = function (obj) {
return HTTP.request(obj).then(function(res) {
return res.body.read()
});
};