微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Dojo从require中返回值

如何从dojo require块中返回值?说我有这样的设置:

<div class = "people">
    <span class = "name"> Joe Bloggs </span> the Baker <br />
    <span class = "name"> John Smith </span> the Chef <br />
</div>


function getNames () {
    require(["dojo/query", "dojo/domready!"], function(query) {

        var names = [];
        query (".name").forEach (function (node) {
            names.push (node.innerHTML);
        });

        return names;
    });
}

function doSomethingWithNames () {

    var names = getNames (); // names is always undefined

}

我知道它为什么会发生 – require块是异步执行的,因此doSomethingWithNames中的变量名在getNames返回之前被赋值.但是我该如何解决呢?

解决方法:

添加自定义回调:

function getNames (callback) {
    require(["dojo/query", "dojo/domready!"], function(query) {

        var names = [];
        query (".name").forEach (function (node) {
            names.push (node.innerHTML);
        });

        callback(names);
    });
}

function doSomethingWithNames () {

    getNames (function(names) {
        //do your stuff with the return here
        //names will Now be populated
    });

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐