Если данный код размещен на произвольном веб-ресурсе (например, на https://testsite.com/ ). Какие данные будут в переменной npage ? А что будет в переменной npage , если выполнить этот код на https://news.yandex.ru ? Из-за чего возникла разница?
Когда ты выполнил этот код на странице произвольного ресурса, то увидел в консоли сообщения об ошибке, а коллбек из .then не был выполнен.
Браузеры следуют правилам Правило ограничения домена — Википедия. Согласно этим правилам невозможно сделать ajax запрос к домену отличному от того, на котором запускается скрипт.
Существуют способы реализовать кроссдоменную передачу данных. Но для этого нужно иметь доступ к бекенду с обоих доменов. Ключевые слова для гугления - jsonp, CORS.
var npage;
//…
.then(function(content) {
npage = content;
});
По поводу стиля кода. Никогда не оформляй код так: хранение переменной, куда записывается значение из асинхронной операции.