【问题标题】:How to return a value back to the main function from an async.eachOfSeries function?如何从 async.eachOfSeries 函数将值返回给主函数?
【发布时间】:2021-05-14 23:17:51
【问题描述】:

我正在使用async npm 库,我希望能够将“someVar”返回到主函数,这可能吗?文档提到如果未提供回调,它将返回一个承诺。但是没有提到从函数返回值。

(async ()=>{
   let returnedval = async.eachOfSeries(someArr, async(val,key) => {                     

       let someVar = someFunction();
       ...
       return promise.Resolve();
   });
})();

【问题讨论】:

    标签: javascript node.js async.js


    【解决方案1】:

    我已经这样做了,它对我有用。您在 eachOfSeries 之外创建一个函数,然后通过传入所需的值从 eachOfSeries 中调用该函数。每次迭代都会传递和记录数据。

    注意:

    我更改了代码以对 eachOfSeries 使用空回调 函数并避免返回一个承诺。我分享了下面的链接以获取有关 async 文档的更多信息。

    (async ()=>{
    
         //variable created outside the eachOfSeries
         let someVar = [];
    
          async.eachOfSeries(someArr, async(val,key) => {                     
        
               someVar = someFunction();
               ...
               logPassedData(someVar);
               
           },{});
    
        //Function created outside the eachOfSeries
        function logPassedData(val){
           console.log("This was passed from within the eachOfSeries : " + val);
        }
    
    })();
    

    如果您想了解更多关于异步 npm 的信息,Async Documentation

    【讨论】:

      【解决方案2】:
      > let someVar = [];
      > 
      > (async ()=>{    let returnedval = async.eachOfSeries(someArr,
      > async(val,key) => {                     
      > 
      >        someVar.push(someFunction());
      >        ...    },{}); }
      > 
      > or
      > 
      > (async ()=>{
      > 
      >    let someVar = [];
      > 
      >    let returnedval = async.eachOfSeries(someArr, async(val,key) => {  
      > 
      > 
      >        someVar.push(someFunction());
      >        ...    },{});
      
      }
      

      【讨论】:

      • 虽然在 eachOfSeries 之外声明的变量将在 series 函数中使用,但该值将为“null”,因为 main 函数将立即执行并且不会等待 async.eachOfSeries 完成,这在主函数之外异步执行。这就是为什么我想知道我们是否可以在系列完成后或在每个系列上返回值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多