【问题标题】:JavaScript on Appcelerator. Extract data from callback functionAppcelerator 上的 JavaScript。从回调函数中提取数据
【发布时间】:2017-04-25 17:56:51
【问题描述】:

Titanium SDK 版本:1.6.1
iPhone SDK 版本:4.2

我正在开发 Titanium Appcelerator 应用程序。

我在一个单独的文件中有一个函数,它返回一个表视图的部分 (http://pastie.org/1734554),在主文件中我通过回调调用了这个函数。我希望能够提取回调数据并将其添加到数组 (http://pastie.org/1734548) 但我无法从调用函数中获取该数据。是怎么做到的?

【问题讨论】:

    标签: javascript appcelerator


    【解决方案1】:

    您遇到了 AJAX 的异步特性。将您的警报移动到回调函数中,它会按预期工作:

    var rowData = [];
    
    rowData.push("THIS ADDS TO THE ARRAY");
    
    loadPhones(function(data) { 
        rowData.push(data);
        alert(rowData);
    });
    

    您必须将函数传递给loadPhones 的原因是您不希望浏览器在检索电话列表时锁定。按照你写的方式,当你到达alert 语句时,匿名回调函数还没有执行。

    在 loadPhones 回调中对检索到的数据做任何你需要做的事情。

    【讨论】:

    • 嗯,好的,是的,我可以像您一样在函数内部执行警报,但我需要将数据推送到 rowData 数组中以便我可以使用它,否则该函数将无用。有没有办法做到这一点?
    • @JonathanClark:当然,这已经发生了。您的问题与访问数组的 when 有关。如果您将该代码放在loadPhones 之后,它还不能访问,因为回调不会被执行。你什么时候需要访问数据,为了什么?
    猜你喜欢
    • 2020-02-18
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2018-05-24
    • 2018-09-04
    • 1970-01-01
    相关资源
    最近更新 更多