我试图理解这样一个观点,即承诺回报另一个承诺就成为回报的价值。这就是我在wiki上的q文档中看到的。https://github.com/kriskowal/q#tutorial
这是理想的情况,因为我正在使用q-io/http,它使用一个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应该成为你内心的承诺。对吗?
最佳答案
我觉得getfiles应该成为你内心的承诺。对吗?
不。承诺不会改变它的价值。但是,.then
方法确实返回一个新的promise,该promise将通过“inner promise”read
方法的结果来解决(在解决getFiles
时将调用该方法)。
您可以将代码缩短为
module.exports = function (obj) {
return HTTP.request(obj).then(function(res) {
return res.body.read()
});
};