javascript中的.then函数有啥用? [复制]
Posted
技术标签:
【中文标题】javascript中的.then函数有啥用? [复制]【英文标题】:What is the use of the .then function in javascript? [duplicate]javascript中的.then函数有什么用? [复制] 【发布时间】:2016-01-13 01:30:34 【问题描述】:我的这个简单问题没有太多答案。我的主要问题是我已经看到 .then
方法在 javascript 中使用了很多,我知道 randomobject.then(//This returns success, //this returns failure)
的主要内容。但是有些东西我没有得到,比如这里的代码:
var success = function (response)
return response.data;
;
var error = function (errResponse)
$log.error(errResponse.data.Message);
;
function getsomeData()
var url = baseUrl + 'api/somedata';
return $http.get(url).then(success, error);
首先在该代码中,我想知道 var success 是如何知道它正在获取什么数据并且与错误相同。它说 response.data 但什么是响应?这可能是http.get
的结果,但这在代码方面没有多大意义。例如,当我有一个功能时,似乎也是如此。
getsomeData
返回它返回的内容。如果我做ff,为什么它不起作用:
var dataHolder = randomAngularService.getsomeData()
它返回一个对象,该对象包含$$state
下的数据,但是如果您执行 ff,.then
会以某种方式使其工作:
randomAngularService.getsomeData().then(function (response)
if(response != null)
console.log('got the data');
$scope.meeData = response;
);
我以为.then
只需要两个参数?这让我感到困惑。
.then
属性也是 JavaScript 方法还是 jQuery 方法?
【问题讨论】:
稍微了解一下 promises... 并阅读有关使用函数引用的信息 这些是您正在寻找的机器人...promisesaplus.com 好的,我现在对promise对象有了基本的了解。但是没有人回答我的第二个问题,为什么 var dataHolder = randomAngularService.getsomeData();不像在 c# 中那样工作,但它会完美地使用带有 promise 对象的函数获取数据?我无法理解这一点。 【参考方案1】:我懒得解释整个承诺的事情,而只是回答关于.then
的问题
.then
中的 2 个参数实际上意味着“当 promise 被解析(成功)/拒绝(失败)时调用这个函数”
关于函数内部的参数,它们应该在 API 中指定,因为调用者(例如 $http.get)可以决定在调用该函数时传递什么。
【讨论】:
【参考方案2】:它用于替换(或提供替代方式)旧的回调机制,以更简洁的方式处理异步请求,而不是将回调作为参数传递,您可以使用.then
链接您的函数,给定的函数将被执行一旦承诺得到解决。
不管怎样,这只是一个基本的解释,你应该深入阅读 Promise 的书籍了解更多信息。
【讨论】:
以上是关于javascript中的.then函数有啥用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章