使用require JS。 我可以关闭要求承诺吗? 这是我的代码(在require模块中):
func1: function () {
var _this = this;
require(["psMapa"], function (psMapa) {
for (var dzien in psMapa.punkty_wycieczki) {
var m = psMapa.punkty_wycieczki[dzien];
_this.func2(m);
psMapa.func3();
},
});
},
func2: function (punkt) {
require(["psMapa"], function (psMapa) {
consolge.log('triggered after func3');
});
});
在我的模块中,我使用func1
。在其中,我使用require
加载psMapa
模块(不要在整个模块上添加依赖项,因为我始终不需要它)。
然后循环使用func2
使用psMapa
函数(所以我必须再次使用require psMapa)。
问题是require
中的func2
是一个承诺并且不是线性的,这就是func2
在psMapa.func3()
之后func1
计算的原因{1}}。
我可以让require
以线性方式工作吗?
答案 0 :(得分:1)
您可以在将psMapa
加载到func2
后将func1
函数传递给func1: function () {
var _this = this;
require(["psMapa"], function (psMapa) {
for (var dzien in psMapa.punkty_wycieczki) {
var m = psMapa.punkty_wycieczki[dzien];
_this.func2(psMapa, m);
psMapa.func3();
},
});
},
func2: function (psMapa, punkt) {
consolge.log('triggered after func3');
}
:
{{1}}