2017-09-01 44 views
0

我試圖用我從我的網頁獲得的字符串填充一個列表。如果它們不在列表中,我只想添加字符串。量角器:即使在我推動字符串後,列表仍爲空

這裏是我的代碼(大量簡化):

let globalList = []; 
it('should populate list',() => { 
    getListOfStrings().then(list => { 
     list.map(listItem => { 
      if(globalList.indexOf(listItem) === -1){ 
        globalList.push(listItem); 
      } 
     }); 
    }); 
    expect(globalList).toBe(["Test", "Test2", "Test3"]); 
}); 

的期望聲明說,globalList仍然爲空,但。 我確定getList()實際上是返回一個字符串列表。我已經嘗試了沒有if語句(雖然我不明白這會是一個問題)。 我比較新的量角器很抱歉,如果我失去了明顯的東西。

任何人有任何想法?

+1

不熟悉'jasmine'但我認爲'指望(globalList)'項目之前的運行都推到'globalList'在回調? – adiga

+0

你應該調試你的程序。 –

+0

你是對的。我所需要做的就是將預期陳述放在'then'內,以便等到先前的行動得到解決。謝謝 – DeejC

回答

0

expect(globalList)在將項目推送到globalList之前運行。 爲了解決這個問題,我添加一個then像這樣:

let globalList = []; 
it('should populate list',() => { 
    getListOfStrings().then(list => { 
     list.map(listItem => { 
      if(globalList.indexOf(listItem) === -1){ 
        globalList.push(listItem); 
      } 
     }); 
    }).then(() => { 
     expect(globalList).toBe(["Test", "Test2", "Test3"]); 
    }) 
}); 
相關問題