检测在promise中异步加载的对象

时间:2016-08-09 13:26:45

标签: javascript angularjs ajax promise

嗯,很难解释。我将展示一个示例,以便更容易理解。 假设我html有3 divs

<div id="a"></div>
<div id="b"></div>
<div id="c"></div>

我想为每个div加载按钮并制作加载它们的函数:

function LoadA() {
    $('#a').html('<button id="aB" > a Button </button>');
}
function LoadB() {
    $('#b').html('<button id="bB" > b Button </button>');
}
function LoadC() {
    $('#c').html('<button id="cB" > c Button </button>');
}

我有一个函数,在单击按钮时放置console.log()

function DisplayLog() {
    $('button').on('click', function () {
        console.log($(this).text());
    });
}

好的,我可以这样做

function GeneralFunction() {
    LoadA(function () {
        LoadB(function () {
            LoadC(function () {
                DisplayLog();
            })
        })
    })
}

因此,当我点击该功能时,log中会显示console。但在这种情况下,函数在函数后加载。我想异步加载它,所以我决定在Promise

中加载它
function GeneralFunction() {
    Promise.all([LoadA(), LoadB(), LoadC()]).then(function () {
        DisplayLog();
    })
}

但这不起作用。我认为因为加载这个函数没有改变DOM(?),但我不确定。有什么提示可以解决这个问题吗?

以上代码仅用于帮助描述问题。

0 个答案:

没有答案