Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
回调练习Javascript_Javascript_Function_Callback - Fatal编程技术网

回调练习Javascript

回调练习Javascript,javascript,function,callback,Javascript,Function,Callback,我一直在练习回调,我得到了这个我一直在努力学习语法的练习。这是我的密码: function wash(callback) { setTimeout(function() { console.log('wash'); callback(); }, 3000); } function dry(callback) { setTimeout(function() { console.log('dry'); callback(); }, 2000); }

我一直在练习回调,我得到了这个我一直在努力学习语法的练习。这是我的密码:

function wash(callback) {
  setTimeout(function() {
    console.log('wash');
    callback();
  }, 3000);
}

function dry(callback) {
  setTimeout(function() {
    console.log('dry');
    callback();
  }, 2000);
}

function fold(callback) {
  setTimeout(function() {
    console.log('fold');
    callback();
  }, 1000);
}
  
doLaundry([wash, dry, fold]);
调用doLaundry([wash,dry,fold])应该打印出以下内容:

洗干折叠完成

通过调用此函数(需要工作)

我尝试了这个,结果很接近,但语法错误或不需要:

  function doLaundry(actions, callback) {
          actions.forEach((item, index) => {
            wash(item, (error) => dry(item, (error) => fold(item, (error) => {})));
          });
        }

在查看了其他简单教程之后,我真的很困惑如何使用回调实现doLaundry()。有什么建议吗?

因为函数不需要是异步的,所以我认为这比需要的要复杂得多。只需迭代操作(函数)数组并调用它们。然后在末尾记录
Done

函数清洗(){
console.log('wash');
}
函数dry(){
控制台日志('dry');
}
函数fold(){
console.log('fold');
}
const doLaundry=(fns)=>{
fns.forEach(fn=>{
fn();
});
console.log('Done!');
}

doLaundry([清洗、干燥、折叠])函数必须是异步的吗?在练习描述中没有提到异步。回调函数没有定义…我不应该篡改函数定义,考虑回调的实现是什么样子的?谢谢,顺便说一句!你不是说函数不需要是异步的吗?但还有其他方法,一秒钟。。。
  function doLaundry(actions, callback) {
          actions.forEach((item, index) => {
            wash(item, (error) => dry(item, (error) => fold(item, (error) => {})));
          });
        }