Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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函数_Javascript_Node.js_Sqlite - Fatal编程技术网

Javascript 如何同步Nodejs函数

Javascript 如何同步Nodejs函数,javascript,node.js,sqlite,Javascript,Node.js,Sqlite,我正在NodeJs服务器上工作,我正在实现一个Sqlite3数据库 我的问题是,“saveMddToDb”方法在“createMddTables”方法完成之前启动 所以我想知道如何等到第一次考试结束后再开始第二次考试 const db = require('./db.js'); const myDb = new db(configServer.dataBase.useDatabase === true ? configServer.dataBase.name : null); myDb.cre

我正在NodeJs服务器上工作,我正在实现一个
Sqlite3
数据库

我的问题是,“saveMddToDb”方法在“createMddTables”方法完成之前启动

所以我想知道如何等到第一次考试结束后再开始第二次考试

const db = require('./db.js');

const myDb = new db(configServer.dataBase.useDatabase === true ? configServer.dataBase.name : null);
myDb.createMddTables();
myDb.saveMddToDb(dataModel);

您需要使用
async/await
来查看

这是一个例子

async function fun1(req, res){
  let response = await request.get('http://localhost:3000');
    if (response.err) { console.log('error');}
    else { console.log('fetched response');
}
您可以使用。此外,正如前面所建议的,您可以使用,这是承诺的语法糖,因此您可以像编写同步代码一样编写代码


async/await函数总是返回一个承诺,所以在使用它之前,我建议您首先查找承诺,并尝试使用它们编写代码。一旦成功,您就可以使用async/await重写它,这样您就知道您完全理解了您正在使用的内容以及它的工作原理

您能告诉我们您使用的是哪个
sqlite3
软件包吗?这将有助于为您提供更多信息,无论是基于承诺还是基于回调
async function fun1(req, res){
  let response = await request.get('http://localhost:3000');
    if (response.err) { console.log('error');}
    else { console.log('fetched response');
}