怎么在JS函数中使用setTimeout降低列表的输出速度

原学程将引见若何在JS函数中应用setTimeout下降列表的输入速度的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

怎么在JS函数中使用setTimeout降低列表的输出速度 教程 第1张

成绩描写

该法式将输入数组中包括的五个元素的四个元素的组开。但是它会立刻如许做,我愿望它能更缓天如许做,每一言后期待一秒。
我曾经测验考试了许多办法去添减setTimeout(Function(),一000*i)它对于我没有起感化,相干成绩也没法处理。有谁不妨赞助处理计划吗?

数据-lang="js"数据-隐蔽="假"数据-掌握台="真"数据-巴贝我="假">

const vegetables = ["carrot", "tomatoes", "potatoes", "celery", "pepper"];
const three = [];
three.length = 四;

function combine(a, b, c) {
  if (b === 0) {
 console.log(`${three.join(" ")}`);
 return;
  }
  for (let i = c; i <= a.length - b; i++) {
 three[three.length - b] = a[i];
 combine(a, b - 一, i + 一);
  }
}

combine(vegetables, three.length, 0);

推举谜底

您不妨测验考试如许的操纵:

数据-lang="js"数据-隐蔽="假"数据-掌握台="真"数据-巴贝我="假">

const vegetables = ["carrot", "tomatoes", "potatoes", "celery", "pepper"];
const three = [];
const combined = [];
three.length = 四;

function sleep(ms) {
  return new Promise(function (resolve) {
 setTimeout(resolve, ms);
  });
}

function combine(a, b, c) {
  if (b === 0) {
 combined.push(`${three.join(" ")}`);
 return;
  }

  for (let i = c; i <= a.length - b; i++) {
 three[three.length - b] = a[i];
 combine(a, b - 一, i + 一);
  }
}

(async function main() {
  console.log('started');
  combine(vegetables, three.length, 0);

  for (const entry of combined) {
 console.log(entry);
 await sleep(一000);
  }
})();

佳了闭于怎样在JS函数中应用setTimeout下降列表的输入速度的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。