Посмотрите на этот пример:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,$http) {
var getJoke = function(){
return $http.get('http://api.icndb.com/jokes/random').then(function(res){
return res.data.value;
});
}
getJoke().then(function(res) {
console.log(res.joke);
});
});
Как вы можете видеть, getJoke
возвращает разрешенное обещание (оно разрешено при возврате res.data.value
). Таким образом, вы ждете, пока запрос $ http.get не будет завершен, а затем выполнится console.log (res.joke) (как обычный асинхронный поток).
Это plnkr:
(Обратите внимание, что я использую некоторые из этих терминов свободно / разговорно для более простого объяснения, которое по-прежнему попадает в ключевые моменты.)
Байт может содержать только 256 различных значений, составляющих 8 бит.
Поскольку в наборе символов есть наборы символов, содержащие более 256 символов, в общем случае нельзя сказать, что каждый символ является байтом.
Следовательно, должны быть отображения, описывающие, как превратите каждый символ в набор символов в последовательность байтов. Некоторые символы могут быть сопоставлены одному байту, но другие должны быть сопоставлены с несколькими байтами.
Эти сопоставления являются кодировками, потому что они сообщают вам, как кодировать символы в последовательности байтов.
Что касается Unicode, на очень высоком уровне Unicode является попыткой присвоить каждому уникальному номеру уникальный номер. Очевидно, что это число должно быть чем-то большим, чем байт, так как имеется более 256 символов :) Java использует версию Unicode, где каждому символу назначается 16-битное значение (и поэтому символы Java имеют ширину 16 бит и имеют целочисленные значения от 0 до 65535). Когда вы получаете представление байта символа Java, вы должны указать JVM кодировку, которую вы хотите использовать, чтобы она знала, как выбрать последовательность байтов для символа.
Кодировка символов - это то, что вы используете для решения проблемы написания программного обеспечения для тех, кто использует другой язык, чем вы.
Вы не знаете, что такое персонажи и как они упорядочены. Поэтому вы не знаете, что строки на этом новом языке будут выглядеть в двоичном и откровенном виде, вам все равно.
У вас есть способ перевода строк с языка, на котором вы говорите, на язык, на котором они говорят (скажем, переводчик). Теперь вам нужна система, способная представлять оба языка в двоичном формате без конфликтов. Кодировка - это система.
Это то, что позволяет вам писать программное обеспечение, которое работает независимо от того, как языки представлены в двоичном формате.