不确定javascript中异步和回调的用法 说明:
我的Node应用程序中有一个Mocha测试,它应该测试Mongo DB JSON文档的DB导出是否正确。 在我的测试中,除了其他测试外,我还测试下载目录是否为空 预期结果: 测试应该等待下载,然后才检查目录是否为空 实际结果: 测试结果总是绿色的 我的问题: 我知道我们有回电,但承诺更好。 我知道AsyncWait是承诺的一种语法糖分。 我知道甚至还有RxJS(我在这里不使用) 不知何故,我不得不处理来自mogodb备份的回调。 看 我不明白我做错了什么,所以测试总是变成绿色(与下载并行运行) mocha-test.js Databasemodule-to-be-tested.js 这会立即启动异步函数,并且不确定javascript中异步和回调的用法 说明:,javascript,node.js,async-await,mocha.js,Javascript,Node.js,Async Await,Mocha.js,我的Node应用程序中有一个Mocha测试,它应该测试Mongo DB JSON文档的DB导出是否正确。 在我的测试中,除了其他测试外,我还测试下载目录是否为空 预期结果: 测试应该等待下载,然后才检查目录是否为空 实际结果: 测试结果总是绿色的 我的问题: 我知道我们有回电,但承诺更好。 我知道AsyncWait是承诺的一种语法糖分。 我知道甚至还有RxJS(我在这里不使用) 不知何故,我不得不处理来自mogodb备份的回调。 看 我不明白我做错了什么,所以测试总是变成绿色(与下载并行运行)
it('...', function (){})
马上结束
所以你需要使用
describe('...',async function(){
it('...',async function(){
const f = async function(){
await Database.downloadDocumentsOfType_KEYS();
expect(dir(config.exportpathKEYS + 'admin/ag-data/')).to.not.be.empty);
};
await f();
});
});
而且
new Promise((resolve) => mongodbbackup({...
应该是
new Promise((resolve,reject) => mongodbbackup({
否则拒绝是未定义的
这会立即启动异步函数,并且
it('...', function (){})
马上结束
所以你需要使用
describe('...',async function(){
it('...',async function(){
const f = async function(){
await Database.downloadDocumentsOfType_KEYS();
expect(dir(config.exportpathKEYS + 'admin/ag-data/')).to.not.be.empty);
};
await f();
});
});
而且
new Promise((resolve) => mongodbbackup({...
应该是
new Promise((resolve,reject) => mongodbbackup({
否则拒绝是未定义的您的答案似乎不太合适。。。不幸的是,测试和备份本身似乎仍在并行运行…测试结束。。然后文档出现在my IDEoh jeez的folderstructure中,我没有读足够多的
等待数据库。下载文档Softype_KEYS()。然后(除了(dir(config.exportpathKEYS+'admin/ag data/')。to.not.be.empty)
下载文档Softype_KEYS不是一个异步函数
/承诺
>啊。也不要做async function(){return new Promise()}
--async function
s始终返回Promise
您的答案似乎很有希望。。。不幸的是,测试和备份本身似乎仍在并行运行…测试结束。。然后文档出现在my IDEoh jeez的folderstructure中,我没有读足够多的等待数据库。下载文档Softype_KEYS()。然后(除了(dir(config.exportpathKEYS+'admin/ag data/')。to.not.be.empty)
下载文档Softype_KEYS不是一个异步函数
/承诺
>啊。也不要执行async function(){return new Promise()}
--async function
s始终返回Promise