サンプルコードのJSONが絶対パスとURLの2パターン存在する
Closed this issue · 3 comments
サンプルコードを書き写しながら勉強していた際に気になった点をフィードバックします。
詳細
サンプルコードでcomment.json
等が使用されていますが、絶対パスとURLの2パターンが混在しています。
絶対パスで記載されているのはCh2_HowToWrite\promise-resolve.adoc
だけのようです。
Ch2_HowToWrite\promise-resolve.adoc#L68
var promise = Promise.resolve($.ajax('/json/comment.json'));// => promiseオブジェクト
Ch2_HowToWrite\src\multiple-xhr-callback-counter.js#L32
return getURLCallback('http://azu.github.io/promises-book/json/comment.json', parse.bind(null, callback));
問題点
絶対パス('/json/comment.json'
) で記載されている方が先に登場する(P.16)。
- 絶対パスの例は、そのまま書き写しても動かない
- 読み進めないと、このJSONのURLが分からない
ただ、この絶対パスをURLにしてしまうとコードが長くなって改行が発生し、結果的に読みづらくなりそうです。
注釈かなにかでURLが補足されていると良さそうな気がしました、個人的に。
$.ajax('/json/comment.json');// =>
.then
をもつオブジェクト
こちらの方はそもそもjQuery.ajaxはthenを持つオブジェクトを返すというだけの例なので、実際に実行させる意図はないですね。(コンソールのボタンもだしてない)
なので、jQuery.ajaxでなくてもいいのですが、jQueryで見慣れてる非同期はajaxかなと思って使ってた感じですね
後者の方もCORSの問題があるため、azu.github.io のドメイン上で実行しないと動かないという問題がありますね。。
(なので大体の例はCORS対応している httpbin を使っているのですが、httpbinだとレスポンスの種類が少ない…)
なので、前者はあくまでAPIの例であって実行させる意図ではないこと
後者はCORSの問題について注記するのが良さそうな気がしています。
コメント頂きありがとうございます。意図について理解できました。
そのような対応でよいかと思います。
おそらく私がpdf版で読んでいたために起きた問題な気がしています。
(リポジトリもcloneしておらず、JSONの存在に気が付かなかったため)