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函数有啥用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

javaScript中的setTimeout返回值有啥用?

JavaScript“绑定”方法有啥用?

matlab中的eval有啥用?

window.external 有啥用?

PHP 嵌套函数有啥用?

MySQL LIKE函数中的%有啥用