require
呼び出しは非同期で実行されるようで、プログラム フローがそれらの周りで継続できるようになっています。これは、require
呼び出し内で設定された値を戻り値として使用しようとしているときに問題になります。例えば:
main.js:
$(document).ready(function() {
requirejs.config({
baseUrl: 'js'
});
requirejs(['other1'], function(other1) {
console.log(other1.test()); //logs out 'firstValue', where I would expect 'secondValue'
}
});
other1.js
function test() {
var returnValue = 'firstValue'; //this is what is actually returned, despite the reassignment below...
requirejs(['other2'], function(other2) {
other2.doSomething();
returnValue = 'secondValue'; //this is what I really want returned
})
return returnValue;
}
if(typeof module != 'undefined') {
module.exports.test = test;
}
if(typeof define != 'undefined') {
define({
'test':test
});
}
require
ブロック内から関数の戻り値を設定するにはどうすればよいですか?