Javascript AngularJS中$promise.then和defer.promise的区别是什么

Javascript AngularJS中$promise.then和defer.promise的区别是什么,javascript,angularjs,angular-promise,Javascript,Angularjs,Angular Promise,我正在开发一个使用JSONP和AngularJS的API。我正在尝试格式化从工厂返回的JSON,但无法使用defer.promise访问它。我可以在浏览器中看到返回的数据,但不能在控制台中看到 哪条路更好?$promise.then和defer.promise之间有什么区别 遵守诺言 为什么这个小雷神没有像$PROMITE那样返回呢 那我答应你 我之所以需要访问代码中的数据,是因为我正在修改json结构,以便可以将值存储在数据库中 这是我的工厂,以防万一 app.factory('BattleP

我正在开发一个使用JSONP和AngularJS的API。我正在尝试格式化从工厂返回的JSON,但无法使用defer.promise访问它。我可以在浏览器中看到返回的数据,但不能在控制台中看到

哪条路更好?$promise.then和defer.promise之间有什么区别

遵守诺言

为什么这个小雷神没有像$PROMITE那样返回呢

那我答应你

我之所以需要访问代码中的数据,是因为我正在修改json结构,以便可以将值存储在数据库中

这是我的工厂,以防万一

app.factory('BattlePetsFactory', ['$resource', function ($resource) {
    return $resource('https://us.api.battle.net/wow/battlePet/species/:SpeciesID' + queryString, {}, {
        query: {
            method: 'JSONP',
            params: {
                jsonp: 'JSON_CALLBACK'
            }
        }
    });
}]);

只需将已有的承诺连成一条链,而不是使用延迟模式。我不知道如何通过现有的承诺链。既然name在结果的根目录中,为什么pet.details.name不给我数据?
var factory = BattlePetsFactory.query({
    SpeciesID: 258
});

factory.$promise.then(function (data) {
    pet.details = data;

    // Returns Mini Thor 
    console.log(pet.details.name);
});
app.factory('BattlePetsFactory', ['$resource', function ($resource) {
    return $resource('https://us.api.battle.net/wow/battlePet/species/:SpeciesID' + queryString, {}, {
        query: {
            method: 'JSONP',
            params: {
                jsonp: 'JSON_CALLBACK'
            }
        }
    });
}]);