关闭requirejs承诺

时间:2014-06-25 18:00:39

标签: javascript requirejs

使用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是一个承诺并且不是线性的,这就是func2psMapa.func3()之后func1计算的原因{1}}。

我可以让require以线性方式工作吗?

1 个答案:

答案 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}}