【问题标题】:Flux ajax api calls in stores return to parent function商店中的 Flux ajax api 调用返回父函数
【发布时间】:2016-04-22 23:15:16
【问题描述】:

我正在使用以下方法调用我的 api:

    getBall: function(){
    ball = xhttp({
        url: '/current',
        method: 'get'
    }).then(function(data){
        return data;
    })

    return ball;
}

问题是我无法在父函数中访问data。我尝试分配变量ball(一个promise对象),但它永远不会让我访问data

我想将data 的值返回给父函数(getBall)。最干净的方法是什么?

【问题讨论】:

  • 这是一个承诺。为什么getBall().then( data => /* ... */ ) 不起作用?

标签: javascript ajax reactjs reactjs-flux


【解决方案1】:

getBall 函数很可能在 xhttp 请求完成之前退出。所以没有办法将data 传回getBall。您能做的最好的事情就是将额外的.then 子句附加到ball,或者将ball 作为承诺传递给getBall 的调用者。调用者可以附加自己的.then 子句。

另一种方法是使用 generators,但它和所有其他异步方法(例如 Promises(甚至简单的回调))都需要超越传统的命令式模型。

【讨论】:

  • 你是绝对正确的。它确实在xhttp 完成之前退出getBall。此函数的目标是简单地从 ajax 调用返回数据。话虽如此,实现这一目标的最简单方法是什么……取消承诺?
猜你喜欢
  • 2022-07-27
  • 2011-04-14
  • 1970-01-01
  • 2015-10-18
  • 2016-05-09
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多