2015-11-29 3 views
2

Я пытаюсь извлечь json из url и проанализировать его в вязах, следуя Reactivity tutorial. Но по какой-то причине мой код ничего не делает. Я использую Debug.watch, чтобы узнать, что произойдет.Elm Port не работает

У меня есть следующий код:

emailUrl : String 
emailUrl = some url 

port fetchEmails : Task Http.Error() 
port fetchEmails = 
    Http.getString (Debug.watch "url" emailUrl) `andThen` parseEmails 

parseEmails : String -> Task x() 
parseEmails json = 
    let result = Json.Decode.decodeString Static.emailDecoder json 
    in case result of 
    ... 

Код компилируется, но, кажется, не делать ничего. Я очень новый, чтобы вять, поэтому я немного застрял здесь. Как это должно работать?

Редактировать: Оказывается, он работал, но, как сказано в ответе, Debug.watch не работает с портами. Я также получал «запрос на перекрестный запрос заблокирован», что объясняет, почему он не смог получить json.

Спасибо!

+0

Вы уверены, что декодер работает правильно (они неудобно) - вы тоже хотите поделиться этим кодом? –

ответ

2

В отпуске для путешествий Elm время не работает с портами. Пожалуйста, используйте Debug.log и проверьте вашу консоль JavaScript.

+0

Aha! Я попробовал это, и теперь он показывает, что функция вызывается! Тем не менее, я также получаю «запрос перекрестного происхождения», что объясняет, почему он не работает. Глупо, я не думал, чтобы проверить консоль раньше ... Спасибо! –

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