百度搜了一下,感觉网上讲的都不好,好多文章都是相互引用,求推荐讲的比较好的书或文章

解决方案 »

  1.   


    function doSomething(callback) {
    callback('stuff', 'goes', 'here');
    console.log('a')

    function foo(a, b, c) {
    console.log(a + " " + b + " " + c);

    doSomething(foo); 我的理解是不应该先打印出a,之后在打印出stuff', 'goes', 'here吗
      

  2.   


    function doSomething(callback) {
    callback('stuff', 'goes', 'here');
    console.log('a')

    function foo(a, b, c) {
    console.log(a + " " + b + " " + c);

    doSomething(foo); 我的理解是不应该先打印出a,之后在打印出stuff', 'goes', 'here吗不哦,因为你callback是先执行的哦,在doSomething这个函数里,都是同步操作,所以是按顺序从上向下执行的。function doSomething(callback) {
        setTimeout(function(){
            callback('stuff', 'goes', 'here');
        })
        console.log('a')

    function foo(a, b, c) {
        console.log(a + " " + b + " " + c);

    doSomething(foo); 加个setTimeout模拟异步操作,就是先打印a再打印其他的。
      

  3.   

    可以阅读《深入浅出node.js.》
      

  4.   

    https://book.douban.com/subject/24319975/
    《你不知道的javascript》中卷   推介你看下。
      

  5.   

    只要把函数当作参数传给另外一个函数都叫做回调因为js是单线程的,为了保证效率,因此一些操作必须用异步处理,比如读取一个文件,其他语言如C++,就是同步
    而js一般是异步的如下fs.readFile('file1.txt', 'utf8', function (err, data) {
          if (err) throw err;
          console.log('File 被读取' + data);
      });
    nodejs基本上都是异步回调来处理业务其实只要看几个后端代码或者自己写几个,就会对回调有比较深的理解了,不需要说学回调还需要专门看一本书