JSFiddle - React, Tailwind, and code Playground

HTML

<div ng-app="Joy" ng-controller="JoyCtrl"></div>

JavaScript

angular.module('Joy', [])
    .controller('JoyCtrl', ['$scope', '$q', '$http', function ($scope, $q, $http) {
    var round = 0;

    function load(userId) {
        return $http.get('http://jsonplaceholder.typicode.com/posts?userId=' + userId)
            .then(function (data) {
            var deferred = $q.defer();
            console.log(data.data);
            var posts = data.data;
            if (round++ > 0 || !posts || posts.length === 0) {
                deferred.resolve();
            } else {
                var userPromises = posts.map(function (post) {
                    return load(post.userId);
                });
                $q.all(userPromises).then(function () {
                    deferred.resolve();
                });
            }
            return deferred.promise;
        });
    }

    load(1).then(function () {
        console.log('All data is loaded');
    });
}]);