2014-01-08 68 views
1

我有類似如下的代碼(CoffeeScript的):IE9:store.find承諾不解決

Ember.Application.initializer 
    name: 'currentPerson' 
    initialize: (container, application) -> 
    application.deferReadiness() 
    store.find('person', 'current') 
    .then (person) -> 
     #Never executed 
     application.advanceReadiness() 
    .fail > 
     #Never executed 
     application.advanceReadiness() 

這適用於所有其他的瀏覽器,而不是在IE9。

有趣的是,如果我調試這一點,並把斷點findById創建承諾剛過(findById被稱爲store.find),它的工作原理。所以它看起來像某種數據競賽。有沒有人經歷過這個?

回答

0

令人驚訝的是我的工作在其他所有瀏覽器,因爲我認爲你必須使用一個胖箭頭(=>)來訪問application,除此之外,你永遠不會調用advanceReadiness(需要())。

如果在任何的再/不合格的方法發生了錯誤,它會默默地失效。爲了捕捉這些錯誤,請參閱。

+0

對不起,代碼是從我頭頂寫的,我寫了很多Ruby,所以代碼可能不完全正確,我會毫不猶豫地修復。我知道,「然後」和「失敗」的職能不叫,因爲我在其中設置斷點,所以沒有異常都有出現的機會。 –

+0

不,你不需要胖箭頭,除非你打算使用'this'而不參考當前函數。 –

+0

嗯好點。在這種情況下,我無法幫助你 –