Async: async.auto рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдВрджрд░ async / рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ TypeError рд╣реЛрддрд╛ рд╣реИ: рдХреЙрд▓рдмреИрдХ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рд╕рд┐рддре░ 2018  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: caolan/async

рдЖрдк рдПрд╕рд┐рдВрдХ рдХрд╛ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
2.6.1

рд╕рдорд╕реНрдпрд╛ рдХрд┐рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реБрдИ (рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг/рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг)
8.11.3

рдХреНрдпрд╛ рдХрд┐рдпрд╛ рддреБрдордиреЗ?
рдорд╛рди рд▓реЗрдВ рдХрд┐ fileObj рдмрд╛рд╣рд░ рд╕реЗ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИ:

async.auto({
  download: (downloadCB) => {
    if (fileObj) {
      fs.writeFile(__dirname + тАШfileNew.txtтАЩ, fileObj.content, 'base64', function (err) {
        if (err){
          return downloadCB(err);
        }
        return downloadCB(null , fileObj.generatedFileName); // works fine
      });
    } else {
      let err = new Error('File not found');
      return downloadCB(err);
    }
  },
  collectData: ['download', async (results, collectCB) => {
    console.log(typeof collectCB); // prints undefined
    console.log(typeof results); // prints correct object

    let res = await anHttpRequest();
    if (res.response && res.response.statusCode == 200) {
      return collectCB(null , 'fileCombined.txt'); // This is where the ISSUE happens
    }
    else if(res.response.statusCode >= 300) {
      return collectCB(new Error('Request failed inside async-auto'));
    }
  }],

  filterData: ['collectData', (results, filterCB) => {
    doFilter(results.collectData, filterCB);
  }],
})

рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХреА рдереА?
рдХрд▓реЗрдХреНрдЯрдбреЗрдЯрд╛ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рдлрд╝рд┐рд▓реНрдЯрд░рдбреЗрдЯрд╛ рдХреЛ рдХрд▓реЗрдХреНрдЯрд╕реАрдмреА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдкрд╛рд░рд┐рдд рдкрд░рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рдерд╛?
рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рдХрд▓реЗрдХреНрдЯрд╕реАрдмреА рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред

рд╕рдВрд╕реНрдХрд░рдг 2.0.1 рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдХреЛрдб рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди 2.6.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХрд┐рд╕реА рднреА рдХрд╛рдордХрд╛рдЬ рдХреА рднреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рдо async рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдорд╛рдирддреЗ рд╣реИрдВ -- рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓рдмреИрдХ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд╕ return рдПрдХ рдорд╛рди (рдпрд╛ throw рдПрдХ рддреНрд░реБрдЯрд┐)ред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдо async рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдорд╛рдирддреЗ рд╣реИрдВ -- рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓рдмреИрдХ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд╕ return рдПрдХ рдорд╛рди (рдпрд╛ throw рдПрдХ рддреНрд░реБрдЯрд┐)ред

рд╣рд╛рдВ, StackOverflow рд╕реЗ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрджрд░реНрдн рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛рддрд╛ рд╣реИ: рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛-async-рдкреНрд░рддреАрдХреНрд╖рд╛-рдЕрдВрджрд░-async-рдСрдЯреЛ-рд╢реНрд░реГрдВрдЦрд▓рд╛

рдпрд╣ async.parallel рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди async рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдХреЙрд▓рдмреИрдХ рдХреЙрд▓ рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

        async.parallel({
            // NOTE: for async functions just return value or throw error
            // don't use the callback
            dates: async function(callback) {
                var rr = await getDates(dbName, r.indi, idx);
                return rr;
             },
             sdates: async function(callback) {
                  var rr = await getDates(dbName, r.spouse, idx);
                  return rr;
             },
             cdates: async function(callback) {
                  var rr = await getDates(dbName, r.cindi, idx);
                  return rr;
             }
        },
        function(err, results) {
             console.log(results);
        });

рдЕрдм рдЖрдк рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдзрд┐рдХ async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рдЕрдзрд┐рдХ, рд╣рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ashoksahoo picture ashoksahoo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brainthinks picture brainthinks  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alexpusch picture alexpusch  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

trvra picture trvra  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JustinBeaudry picture JustinBeaudry  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ