首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nodejs模块中运行newman

在nodejs模块中运行newman
EN

Stack Overflow用户
提问于 2019-10-16 05:57:06
回答 1查看 1.6K关注 0票数 0

我有一个带有类的nodejs模块。

在这个类的内部有一个方法叫做newman ()

无法知道如何返回newman运行的结果数据。newman调用自己(模块外)工作,没有任何问题。

mymodule.js

代码语言:javascript
复制
var newman = require('newman');

module.exports =  function (collection, data) {
    this.run = function () {

        newman.run({
            collection: require(this.collection + '.postman_collection.json'),
            environment: require(this.environment + '.postman_environment.json')
        }, function () {
            console.log('in callback');
        }).on('start', function (err, args) { 

        }).on('beforeDone', function (err, data) { 

        }).on('done', function (err, summary) {

        });

        return 'some result';
    }
}

index.js

代码语言:javascript
复制
var runNewman = require('./mymodule');

var rn = new runNewman(cName, cData);

var result = rn.run(); // never returns any variable
cosole.log(result); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-16 06:08:28

如您所见,newman使用事件和回调。如果需要数据,则需要从done事件回调中发送数据。这里您可以做的是将代码转换为使用Promise api

请参阅下面的片段

代码语言:javascript
复制
var newman = require('newman')

module.exports = function (collection, data) {
  this.run = function () {
    return new Promise((resolve, reject) => {
      newman.run({
        collection: require(this.collection + '.postman_collection.json'),
        environment: require(this.environment + '.postman_environment.json')
      }, function () {
        console.log('in callback')
      }).on('start', function (err, args) {
        if (err) { console.log(err) }
      }).on('beforeDone', function (err, data) {
        if (err) { console.log(err) }
      }).on('done', function (err, summary) {
        if (err) { reject(err) } else { resolve(summary) }
      })
    })
  }
}

调用代码是

代码语言:javascript
复制
var runNewman = require('./mymodule');

var rn = new runNewman(cName, cData);

var result = rn.run().then(console.log, console.log); //then and catch
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58406612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档