return向谁返回值(javascript)?

return向谁返回值(javascript)?,javascript,hottowel,Javascript,Hottowel,我在HotTower项目中看到了以下代码。在下面的代码中,的回调方法返回值return vm.messabeCount=data 我想知道为什么&它会给谁带来回报。这是标准做法吗?代码不能是公正的吗 return datacontext.getMessageCount().then(function (data) { vm.messageCount = data; }); 或 getMessageCount是一个返回承诺对象的函数然后此承诺的方法再次返回另一个承诺。它可以链接多个,然后

我在HotTower项目中看到了以下代码。在下面的代码中,的回调方法返回值return vm.messabeCount=data

我想知道为什么&它会给谁带来回报。这是标准做法吗?代码不能是公正的吗

return datacontext.getMessageCount().then(function (data) {
    vm.messageCount = data;
});


getMessageCount
是一个返回承诺对象的函数
然后此承诺的
方法再次返回另一个承诺。它可以链接多个
,然后链接
零件。每个
then(function(){…})
都能够修改要传递给下一个
then
调用的数据。所以这个结构:

return datacontext.getMessageCount().then(function(data) {
    return vm.messageCount = data;
});

表示修改传递给解析回调的数据。如果没有这个
返回
成功函数将使用未定义的值来解析,而我们需要使用
数据
来解析它

返回vm.messageCount=data
将数据值分配给vm.messageCount,并返回相同的值。您的两个变体都没有完全相同的行为,如果他们真的期望返回值,这可能会破坏调用代码。另外,所有函数在函数def的末尾都有一个隐式的空/空返回值。
dashboard
在哪里实际调用
getMessageCount
函数?@Bergi
getMessageCount
dashboard
函数中被调用。为了简洁起见,删除了这些行。实际上,它并没有真正修改数据,而是标识函数——而设置全局变量以保证结果是一种反模式。
return datacontext.getMessageCount().then(function (data) {
    vm.messageCount = data;
    return;
});
return datacontext.getMessageCount().then(function(data) {
    return vm.messageCount = data;
});