Они ведут себя по-разному; Ваш первый пример выполняется в течение двух секунд, а второй - в течение трех секунд.
В первом случае медленное и быстрое разрешено начинать параллельно; во втором случае вы заставляете первое обещание выполнить еще до того, как начнете второе.
Реальный сценарий использования множества обещаний без await
их заключается в том, если вы хотите получать несколько URL-адресов параллельно.
// assuming getUrlContents() returns a Promise
let promises = [
getUrlContents('http://url1.com/'),
getUrlContents('http://url2.com/'),
getUrlContents('http://url3.com/')
];
// all URLs are currently fetching
// now we wait for all of them; doesn't particularly matter what order
// they resolve
let results = [
await promises[0],
await promises[1],
await promises[2]
];
Еще один вариант этого будет выполняться гораздо медленнее (и, как правило, не так, как вы хотите, если вам действительно НЕ нужно содержимое одного, прежде чем вы сможете перейти к следующему):
let a = await getUrlContents('http://url1.com/')
let b = await getUrlContents('http://url2.com/')
let c = await getUrlContents('http://url3.com/')
let results = [ a, b, c ];
[119 ] Загрузка для b
не начнется, пока не завершится a
и т. Д.
То, на что похож URI, не является самой важной частью. О чем необходимо думать, вместо этого то, как это представлено пользователю. Страница должна, например, иметь ссылку на "следующую" страницу и другую ссылку на "предыдущую" страницу (если существует один). Смотрите на Подкачку страниц Канала RFC 5005 и Архивацию
С моим ограниченным пониманием того, что REST о, затем следующее могло бы быть самым успокоительным.
GET /resource/?page=<pageenr>&asof=<datetime>
Так как содержание представления неожиданно никогда не изменилось бы, и кэширование могло использоваться.
Но на самом деле отвечать на Ваш вопрос, я думаю, что страница параметра является предпочтительным методом.
Я пошел бы с опцией (2). Почему?