簡體   English   中英

等到函數在遞歸函數中完成

[英]Wait till function finishes in recursive function

鑒於我有一個遞歸方法:

tests = {
  add: function (data, option, dataSet) {
    if(option) {
      dataSet.forEach(function (values) {
        this.add(values.data, false);
      }, this);
    }
    console.log(data.name)
  }
}

我會使用

tests.add({name: 'test1'}, true, [{data: {name: 'test2'}}]);

我認為在所有情況下,這都將在“ test1”之前記錄“ test2”,但是在很多情況下,這不會發生。 據我所知,forEach函數應該阻止其他行的執行,但這根本不會發生。

上下文:代碼應在網頁上添加某些組件。 這些組件可以依賴於其他組件(位於dataSet中)。 這些依存關系應始終首先遞歸添加。

有任何想法嗎?

這種不一致的原因是console.log不是同步功能。 在這里閱讀更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM