现在我有funcA,funcB,arrayA和arrayB。在funcA中,arrayB将通过请求一些外部信息来填充它自己,并且这样做的时间是多种多样的。我希望它在arrayB.length == arrayA.length之后执行funcB,而arrayB是一个全局变量,其内容将在funcB中使用。我假设我需要使用JQuery推迟并承诺..所以我试过这个Javascript承诺依次执行两个函数
var arrayB = [];
var hi = funcA();
hi.then(funcB());
funcA(){
var Dfd = $.Deferred();
arrayB.forEach(function(x, i){
some external retrieval;
if (arrayB.length == arrayA.length){
Dfd.resolve(arrayB);
}
})
return Dfd;
}
但这没有帮助。我应该如何改变它?
支票需要内部“一些外部检索”要做,否则它只是从来没有解决(因为它只会发生一次) – MinusFour
@MinusFour我不好。它在那个功能里面。我只是改变了我的文章 – dwuuuu
所以,在funcA中,arrayB必须已经有数据了吗?而arrayA通过一些你没有显示的方式以某种方式神奇地填充数据? –