Vip*_*ngh 1 node.js async-await node-modules snowflake-cloud-data-platform
您好,我有与雪花连接来执行查询的代码。我想从实现了回调函数的完整密钥中提取数据。有什么方法可以停止该功能,直到它提供完整的信息。比如使用await什么的
var statement = connection.execute({
sqlText: 'select sysdate() from dual'
,complete: function(err, stmt, rows) {
if (err) {
context.error('Failed to execute statement due to the following error: ' + err.message);
} else {
context.log('Successfully executed statement: ' + stmt.getSqlText());
}
}
});
Run Code Online (Sandbox Code Playgroud)
编辑1:
如果我使用
console.log(statement.getStatus()) //output is {fetching}
Run Code Online (Sandbox Code Playgroud)
但我需要的是一个完整的状态。
您无法将异步函数转换为同步函数。如果您希望您的代码看起来像同步的,那么您可以使用async/await
. 包装函数的示例execAsync
,用于使用async/await
:
function execAsync(connection, sqlText) {
return new Promise((resolve, reject) => {
connection.execute({
sqlText: sqlText,
complete: (err, stmt, rows) => {
if (err) {
return reject(err);
}
return resolve([stmt, rows]);
}
});
});
}
(async () => {
try {
const [statement, rows] = await execAsync(connection, 'select sysdate() from dual');
console.log(statement.getStatus());
} catch (error) {
console.error(error);
}
})();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
496 次 |
最近记录: |