Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Node.js 使nodejs阻止调用其他函数,直到一个函数完全执行为止_Node.js - Fatal编程技术网

Node.js 使nodejs阻止调用其他函数,直到一个函数完全执行为止

Node.js 使nodejs阻止调用其他函数,直到一个函数完全执行为止,node.js,Node.js,如何完整地执行包含mysql查询的整个函数,然后转到nodejs中的另一个函数。由于nodejs本质上是异步的、非阻塞的。首先在一个函数中执行非sql部分,然后转到另一个函数中执行非sql部分,最后在两个函数中执行mysql查询函数。对于您的需求,最好使用异步瀑布法之类的方法 不要人为地阻挡!如果需要,可以使用回调、承诺或调查async.瀑布。您不能阻止等待异步操作在Javascript中查找。在堆栈溢出这个主题上,有一千多个问题。相反,您可以注册回调或返回承诺,并将需要使用异步结果的代码放入

如何完整地执行包含mysql查询的整个函数,然后转到nodejs中的另一个函数。由于nodejs本质上是异步的、非阻塞的。首先在一个函数中执行非sql部分,然后转到另一个函数中执行非sql部分,最后在两个函数中执行mysql查询函数。

对于您的需求,最好使用异步瀑布法之类的方法


不要人为地阻挡!如果需要,可以使用回调、承诺或调查async.瀑布。您不能阻止等待异步操作在Javascript中查找。在堆栈溢出这个主题上,有一千多个问题。相反,您可以注册回调或返回承诺,并将需要使用异步结果的代码放入回调或承诺
。then()
处理程序中。在ES6中,您也可以使用async/await,但这只是简单的承诺语法(您仍然需要了解它是如何工作的)。只有在显示实际代码时,您才能获得特定的帮助。有关堆栈溢出的代码的问题应始终包括该代码。
async.waterfall([
    function(callback) {
        //Do first task send result if needed to call back on success
        callback(null, 'one', 'two');
    },
    function(arg1, arg2, callback) {
        //Do Second task send result if needed to call back on success
        // arg1 now equals 'one' and arg2 now equals 'two'
        callback(null, 'three');
    },
    function(arg1, callback) {
        // Execute the mysql task
        callback(null, 'done');
    }
], function (err, result) {
    // result now equals 'done'
});