承诺在几个文件中

时间:2017-01-26 07:01:28

标签: javascript node.js

我努力在Javascript中组织一系列操作作为Promises(而不是异步瀑布),每个承诺都在一个文件中,以便我可以自己测试它。

使用main.js,但是" p1.p1()"很难看!

p1 = require("./test.js");

console.log(p1)

p1.p1().then(function(val) {
  console.log(val); // 1
  return val + 2;
}).then(function(val) {
  console.log(val); // 3
})

test.js,将来我想要导入几个{1..X} .js:

exports.p1 = function() { return new Promise(function(resolve, reject) { resolve(1); }); }

在Node 4.3中有更简洁的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您p1.p1()的唯一问题是p1的重复,并且您希望以较短的方式调用它,那么除了您打算只有一个之外保证每个文件,然后你可以这样做:

test.js

module.exports = function () {
    return new Promise( function (resolve, reject) {
        resolve(1)
    })
}

main.js

var p1 = require("./test.js")

p1()
    .then(function(p1_result) {
        console.log("Result of p1: ", p1_result)
    })
    .then(...)
    .catch(function(err) {
        // handle errors as you see fit in your case
    })
  • 请注意,将test.js中的承诺返回到module.exports的函数将意味着您只能导出该函数,但您明确声明这是您想要做的。

PS:如果你没有 使用Node v4.3,你应该考虑使用更新版本(6.9.x LTS或7.4.x当前版本)