如何从函数CodeceptJS返回值

时间:2019-11-13 11:09:01

标签: javascript node.js codeceptjs

当状态列的值为“ Y”时,我需要从excel文件中获取一个值,并且我想将名称列的值返回给调用函数,并且excel表包含的数据如下

姓名号码状态 YYYY 1234 N XXXXX 3456 Y

我这样写的函数

var Excel = require(‘exceljs’);

var workbook = new Excel.Workbook();
var selectStatus = ’’;

module.exports = function() {
    return actor({
        trimSelectName: function() {
            workbook.xlsx.readFile("E:/testData.xlsx")
                .then(function(sheetName) {
                    // use workbook
                    i = 1;
                    try {
                        var workSheet = workbook.getWorksheet("trim");
                        workSheet.eachRow({
                            includeEmpty: false
                        }, function(row, rowNumber) {
                            if (i == 1) {
                                i = 0;
                            } else {
                                currRow = workSheet.getRow(rowNumber);
                                console.log("Name :" + currRow.getCell(1).value + ", Number :" + currRow.getCell(2).value +
                                    "Select Status :" + currRow.getCell(3).value);
                                selectStatus = currRow.getCell(3).value;
                                if (selectStatus == "Y") {
                                    return selectStatus;
                                }


                            }

                        });
                    } catch (Error) {
                        console.log(Error);
                    }

                });

        },
    });

};

但是我试图从调用函数中获取打印值,但我总是将其作为未定义值

调用功能:

const selected = trimDataSelection.trimSelectName();

您能告诉我问题出在哪里吗?

1 个答案:

答案 0 :(得分:0)

正如我所见,您的函数返回了actor对象,我假设您使用的是codeceptjs生成的steps_file,用于扩展“ I”对象以添加自定义函数。因此,如果要从场景中调用自定义函数,则应这样调用它:
const selected = I.trimSelectName()

相关问题