,可以通过使用Promise.all方法来实现。Promise.all方法接收一个包含多个Promise对象的数组作为参数,并返回一个新的Promise对象,该Promise对象在所有的Promise对象都成功解析后才会被解析,如果其中任何一个Promise对象被拒绝,则整个Promise对象会被拒绝。
下面是一个示例代码:
const Promise = require('bluebird'); // 使用bluebird库来提供Promise功能
const mysql = require('mysql');
const mongodb = require('mongodb');
// 创建MySQL数据库连接
const mysqlConnection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase'
});
// 创建MongoDB数据库连接
const mongoClient = mongodb.MongoClient;
const mongoURL = 'mongodb://localhost:27017/mydatabase';
// 创建Promise对象
const mysqlPromise = new Promise((resolve, reject) => {
// 执行MySQL查询操作
mysqlConnection.query('SELECT * FROM users', (error, results) => {
if (error) {
reject(error);
} else {
resolve(results);
}
});
});
const mongoPromise = new Promise((resolve, reject) => {
// 执行MongoDB查询操作
mongoClient.connect(mongoURL, (error, client) => {
if (error) {
reject(error);
} else {
const db = client.db('mydatabase');
const collection = db.collection('users');
collection.find().toArray((error, results) => {
if (error) {
reject(error);
} else {
resolve(results);
}
client.close();
});
}
});
});
// 使用Promise.all方法查询多个数据库调用
Promise.all([mysqlPromise, mongoPromise])
.then(([mysqlResults, mongoResults]) => {
console.log('MySQL Results:', mysqlResults);
console.log('MongoDB Results:', mongoResults);
})
.catch(error => {
console.error('Error:', error);
});
在上述代码中,我们使用了bluebird库来提供Promise功能,并创建了两个Promise对象,分别用于执行MySQL查询和MongoDB查询。然后,我们使用Promise.all方法将这两个Promise对象传递给它,并通过.then方法处理查询结果。最后,我们使用.catch方法来处理任何可能的错误。
这个例子展示了如何在NodeJS中使用then查询多个数据库调用,并且不涉及任何特定的云计算品牌商。请注意,这只是一个示例,实际情况下,你需要根据自己的具体需求和使用的数据库进行相应的调整。
领取专属 10元无门槛券
手把手带您无忧上云