Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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 在nodejs 4.x中,从不同的文件位置重用异步函数的有效方法是什么?_Javascript_Node.js_Asynchronous - Fatal编程技术网

Javascript 在nodejs 4.x中,从不同的文件位置重用异步函数的有效方法是什么?

Javascript 在nodejs 4.x中,从不同的文件位置重用异步函数的有效方法是什么?,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,这是一个工作示例代码,它从不同的位置调用异步函数,并通过一些计算重用结果。在这种情况下,我使用了两次“承诺” 第一个承诺:从不同的文件位置获取异步值 第二个承诺:等待得到第一个承诺的结果,以便在main.js文件中重用 使用“回调”或“承诺”执行此操作的有效方法是什么 我的代码: 在/folder1/sub.js function func(){ return new Promise(function(resolve,reject) { var value = 5;

这是一个工作示例代码,它从不同的位置调用异步函数,并通过一些计算重用结果。在这种情况下,我使用了两次“承诺”

  • 第一个承诺:从不同的文件位置获取异步值
  • 第二个承诺:等待得到第一个承诺的结果,以便在main.js文件中重用
使用“回调”或“承诺”执行此操作的有效方法是什么


我的代码:

/folder1/sub.js

function func(){
    return new Promise(function(resolve,reject) {
        var value = 5; // resolve value
        setTimeout(function(){
            value += 5;
            err = false;
            if(err) return reject(err);
            resolve(value);
        },3000);
    });
}

module.exports={
    getValue: func
}
var sub = require('./folder1/sub');

function nextfunc(){
    return new Promise(function(resolve,reject){
        sub.getValue().then(function(val){
            console.log(val);
            // do some calculations
            val+=5;
            err = false;
            if(err) return reject(err);
            resolve(val);
        });
    });
}

var last = nextfunc();
last.then(function(last){
    console.log('last -', last);
});
/main.js

function func(){
    return new Promise(function(resolve,reject) {
        var value = 5; // resolve value
        setTimeout(function(){
            value += 5;
            err = false;
            if(err) return reject(err);
            resolve(value);
        },3000);
    });
}

module.exports={
    getValue: func
}
var sub = require('./folder1/sub');

function nextfunc(){
    return new Promise(function(resolve,reject){
        sub.getValue().then(function(val){
            console.log(val);
            // do some calculations
            val+=5;
            err = false;
            if(err) return reject(err);
            resolve(val);
        });
    });
}

var last = nextfunc();
last.then(function(last){
    console.log('last -', last);
});

试试这样的

功能

module.exports = function func(value){
    return new Promise(function(resolve,reject) {
        var value = 5; // remove value from here
      .....
主要