代码之家  ›  专栏  ›  技术社区  ›  Alex

NodeJS代码未等待函数完成

  •  0
  • Alex  · 技术社区  · 6 年前

    我正在创建一个带有Lambda函数的Excel文件,该文件稍后通过电子邮件发送。

    console.log("Before print");
        var test2 = await workbook.write(path, function(err, stats) {
            console.log("Excel written");
            if (err) {
              console.error(err);
            } else {
              console.log(stats); // Prints out an instance of a node.js fs.Stats object
    
            }
          });
        console.log("After print");
    

    如何使Lambda函数等待excel写入磁盘?

    2 回复  |  直到 6 年前
        1
  •  5
  •   jfriend00    6 年前

    await

    如果您正在使用的库不直接支持承诺,那么您可以自己承诺该函数。

    const util = require('util');
    workbook.writeP = util.promisify(workbook.write);
    
    async function someFunc() {
        try {
            let result = await workbook.writeP(path);
            console.log(result);
            // do something here that runs after the .write operation is done
        } catch(e) {
            console.log(e);
        }
    }
    
        2
  •  0
  •   Sergio Flores    6 年前