2014-02-24 54 views
0

有人可以解釋什麼是造成這種故障,請?我開始嘗試探索亞馬遜網絡服務,並承諾整理一些東西,但是當我將它剝離出來以解決問題時,我發現一個讓我感到困惑的基本失敗。簡而言之,如果我將下面的AWS調用放入由Mocha執行的文件中,則該函數永不返回,並且回調中的任何路徑都不會執行;nodejs摩卡異步調用無法返回。但在標準節點模塊內工作

即,失敗,甚至外部的描述塊

new AWS.EC2(
    { 
     region: 'eu-west-1' , 
     secretAccessKey:"vcvcz", 
     accessKeyId:"ffczcvzxczxczxczx" 
    } 
).describeInstances(function(error, data) { 
    if (error) { 
     console.log(error); // an error occurred 
    } else { 
     console.log(data); // request succeeded 
    } 
}); 

的,但是,如果我把這些代碼,堅守在一個標準的節點js文件,它的工作原理。看起來Mocha取消了請求,或者回調未被綁定或被刪除。有沒有人有任何想法嗎?

回答

0

好的,是的,顯而易見的答案是我使用了Mocha的默認超時。設置 this.timeout =

然後調用done()返回已解決此問題。這是一個異步測試功能。很顯然,我會根據實際需求進行測試。

describe('addition', function() { 
    it('should add 1+1 correctly', function (done) { 

     this.timeout(10000); 

     Loader.load(new AWS.EC2({ 
      region: 'eu-west-1' , 
      secretAccessKey:"xxxxx", 
      accessKeyId:"yyyyyyyyy" 
     })) 
     .then(function(data){ 
      console.log(data) 
      done(); 
     }) 
     .fail(function(error){ 
      console.log(error) 
     }) 


    }); 
});