2014-01-08 2 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 (потребности ()).

Если в каком-либо из методов then/fail произошла ошибка, она будет терпеть неудачу. Чтобы поймать эти ошибки, см. .

+0

Извините, код был написан с верхней части моей головы, и я пишу много из Ruby, поэтому код может быть не совсем корректным, я исправлю это неловко. Я знаю, что функции «then» и «fail» не вызываются, потому что я установил в них контрольные точки, поэтому никаких исключений не возникает. –

+0

И нет, вам не нужна жирная стрелка, если вы не планируете использовать «это», не ссылаясь на текущую функцию. –

+0

Mm хороший пункт. В этом случае я не могу вам помочь –

Смежные вопросы