alsotang / node-lessons

:closed_book:《Node.js 包教不包会》 by alsotang
16.53k stars 4.7k forks source link

lesson5中callback求解 #136

Open gruad opened 7 years ago

gruad commented 7 years ago
    setTimeout(function () {
        concurrencyCount--;
       // callback为什么这么写?两个参数,我小白看不懂啊,求解
        callback(null, url + ' html content');
    }, delay);

callback是什么?是函数吗?看不懂,真心求解(看到是从主函数fetchUrl(url,callback)中传过来的)

joshinrai commented 7 years ago

js回调函数!需要看上下文来判断具体是哪个方法!类似java多态!

发自网易邮箱大师 在2017年06月01日 16:23,gruad 写道: setTimeout(function () { concurrencyCount--; // callback为什么这么写?两个参数,我小白看不懂啊,求解 callback(null, url + ' html content'); }, delay);

callback是什么?是函数吗?看不懂,真心求解(看到是从主函数fetchUrl(url,callback)中传过来的)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

xdoer commented 7 years ago

你打印一下这个callback函数看看是什么啊。。 function (err, v) { results[x.index] = v; callback(err); }. 把这函数带进去就能看懂了

yuk320 commented 7 years ago

callback是回调函数 用于将函数当参数传进去并将结果返回出来的方法,主要用于异步操作时应对非同步响应结果。 callback 你可以理解为一个 变量 你赋值时 可以 赋予一个 Function callback(null,url + ' html content'); 当 callback = function(err, content) 时 传回的第一个参数为 err 第二个参数为 content

yanbo0039 commented 7 years ago

咦。。。这么热闹

xwHoward commented 6 years ago

这个是async#mapLimit的规定写法,我最开始看也是很疑惑mapLimit怎么知道这些异步函数什么时候执行完,后来仔细看了asyncAPI才知道是必须声明这个名为callback的回调,在异步操作完成时调用,并且第一个参数是null(执行无错时)或者error(出错时)。

XiongJingzhi commented 5 years ago

mapLimit(arr, limit, iterator, callback),iterator里面的callback就是后面的callback,callback参数result是一个iterator里面callback参数的数组。相当于fuck(arguments)参数的伪数组。