Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 几份文件中的承诺_Javascript_Node.js - Fatal编程技术网

Javascript 几份文件中的承诺

Javascript 几份文件中的承诺,javascript,node.js,Javascript,Node.js,我正在努力将Javascript中的一系列操作组织为承诺(与异步瀑布相反),每个承诺都放在一个文件中,这样我就可以自己测试它了 正在使用main.js,但是“p1.p1()”很难看 test.js,将来我想导入几个{1..X}.js: exports.p1 = function() { return new Promise(function(resolve, reject) { resolve(1); }); } 节点4.3中是否有更简洁的方法来实现这一点?如果p1.p1()的唯一问题是重复p

我正在努力将Javascript中的一系列操作组织为承诺(与异步瀑布相反),每个承诺都放在一个文件中,这样我就可以自己测试它了

正在使用main.js,但是“p1.p1()”很难看

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

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

节点4.3中是否有更简洁的方法来实现这一点?

如果
p1.p1()
的唯一问题是重复
p1
,并且希望以更短的方式调用它,那么除了希望每个文件只有一个承诺之外,还可以执行以下操作:

test.js
中:

module.exports = function () {
    return new Promise( function (resolve, reject) {
        resolve(1)
    })
}
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
    })
main.js
中:

module.exports = function () {
    return new Promise( function (resolve, reject) {
        resolve(1)
    })
}
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:如果你不使用<强> >使用节点V4.3,你应该考虑使用一个更新近的版本(6.9 x Lts,或者7.4 x x当前)