2017-10-16 121 views
0

因此,我使用node.js中的q模塊嘗試進行其餘調用並異步獲取數據,我想知道的是我如何使用then方法將該數據傳遞給函數。Node.js q模塊 - 之後使用函數

舉例來說,如果我有一個名爲的getData()函數返回defer.promise,我成立了一個變量獲得這個承諾是這樣 -

var promise = getData(); 

我知道我可以使用

promise.then(console.log, console.error); 

,它會打印出我從REST調用

但是檢索的數據,我怎麼可能例如,數據傳遞到一個名爲sortData(數據)功能?

promise.then(sortData(data), console.error); 

does not work for example,does anyone know how to do this?還是我必須做我以前做過的同樣的事情,並繼續使用延遲執行異步函數?使用,然後,然後呢?我只是不確定如何將異步獲取的數據作爲該函數的輸入傳遞給函數。

任何幫助表示讚賞。

回答

2
promise.then(sortData, console.error); 

qthen接受兩個回調函數作爲參數 - 一個成功的回調和錯誤回調。

+0

謝謝!所以當我調用回調函數sortData時,你會介意告訴我如何訪問我異步獲取的數據嗎?我做了一個休息的GET請求,並獲得了數據解析爲一個JSON,並做了then.function(response){defer.resolve(response),所以當我使用promise.then(sortData,console.error)時,我怎樣才能訪問JSON內sortData? – Chase

+0

你會得到這些數據作爲你的'sortData'函數的第一個參數。 – dashmug

+0

真棒謝謝你一直很大的幫助。如果你不介意我問一個更快的問題,如果我想接受該函數的其他參數怎麼辦?像函數was - sortData(data,dataType)...和第一個參數有數據自動從承諾傳遞...我怎麼可以傳遞一些變量到第二個參數dataType? – Chase