我試圖理解承諾返回另一個承諾成爲回報價值的想法。這就是我在wiki上的Q文檔中閱讀的內容。 https://github.com/kriskowal/q#tutorialq-io嵌套承諾
它是理想的情況,因爲我使用q-io/http使用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的'從外部函數的輸出()'。 –
謝謝甜菜根 - 甜菜根,你的答案肯定會在這種情況下工作。 – Adam
Adam,和Bergi的解決方案一樣。爲了保持簡短,我省略了簡化。正如你所看到的,方法鏈接使得對'getFiles'的賦值是不必要的。 –