gpt4 book ai didi

javascript - 使用 Promise 等待函数完成

转载 作者:行者123 更新时间:2023-12-03 06:20:18 24 4
gpt4 key购买 nike

我已经在线阅读了一些 Promises 方法的教程,但我仍然有点困惑。我有一个 Node app.js,它执行多种功能,包括连接到数据库。

 db.connect(function(err) {
setupServer();
if(err) {
logger.raiseAlarmFatal(logger.alarmId.INIT,null,'An error occurred while connecting to db.', err);
return;
}

现在我已经编写了一个 Mocha 单元测试套件,它封装了这个应用程序并对其执行多个请求调用。在某些情况下,会发生测试初始化​​时未确认数据库已成功连接的情况,即:已执行 setupServer()

我如何对这段异步代码实现 Promise 方法,如果没有 Promise,我应该使用什么?我已经尝试过事件发射器,但这仍然不能满足所有要求,并会在清理过程中导致失败。

最佳答案

如果您使用 Mocha ,则应该使用 asynchronous code approach 。通过这种方式,您可以指示 mocha 等待您调用 done 函数,然后再继续执行其余操作。

这将帮助您开始:

describe('my test', function() {
before(function(done) {
db.connect(function(err) {
setupServer(done);
});
})

it('should do some testing', function() {
// This test is run AFTER 'before' function has finished
// i.e. after setupServer has called done function
});
});

假设您的 setupServer 在完成时调用 done 函数:

function setupServer(done) {
// do what I need to do
done();
}

关于javascript - 使用 Promise 等待函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com