我正在使用Step來控制並行執行。 我試圖做的是:Nodejs - 多個回調函數
- 使用http讀取一個JSON文件(JSON文件包含事件的數組)
- 循環事件的陣列並得到事件的細節使用http
- 存儲事件的詳細信息在一個局部變量的「事件」
我在做什麼是成才這樣的:
var events = []; // this is the local variable to hold event details
Step(
\t function getEvents(){
\t \t
\t \t var options = {
\t \t \t host: '95.85.14.142',
\t \t \t port: 80,
\t \t \t path: '/data/IT/config.json',
\t \t \t method: 'GET'
\t \t };
\t \t
\t \t http.request(options,this).end();
\t
\t },
\t function getEventsResponse(res){
\t \t
\t \t if (res.statusCode==200){
\t \t \t \t
\t \t \t res.setEncoding('utf8');
\t \t \t res.on('data',this);
\t \t \t
\t \t }
\t },
\t function getEventDetails(data){
\t \t
\t \t var events = JSON.parse(data).events;
\t \t
\t \t var group = this.group();
\t \t for(e in events){
\t \t \t var event = events[e]; \t
\t \t \t var options = {
\t \t \t \t host: '95.85.14.142',
\t \t \t \t port: 80,
\t \t \t \t path: '/data/IT/events/'+event.code+'.json',
\t \t \t \t method: 'GET'
\t \t \t };
\t \t \t
\t \t \t http.request(options,group()).end();
\t \t
\t \t } \t
\t
\t },
\t function getEventDetailsResponse(err,responses){
\t \t
\t \t // responses = [undefined,undefined,..] ???
\t \t
\t },
\t ...
);
在getEventDetailsResponse我期待對象的數組,但我得到了一個未定義的數組變量:
[不確定的,不確定的,..]
我在做什麼錯誤?
仍然無法讓它工作... – Franz
我可能導致你誤入歧途。我將使用腳本的工作版本編輯答案。 –