如何从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 举报,一经查实,本站将立刻删除。