Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.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中异步和回调的用法 说明:_Javascript_Node.js_Async Await_Mocha.js - Fatal编程技术网

不确定javascript中异步和回调的用法 说明:

不确定javascript中异步和回调的用法 说明:,javascript,node.js,async-await,mocha.js,Javascript,Node.js,Async Await,Mocha.js,我的Node应用程序中有一个Mocha测试,它应该测试Mongo DB JSON文档的DB导出是否正确。 在我的测试中,除了其他测试外,我还测试下载目录是否为空 预期结果: 测试应该等待下载,然后才检查目录是否为空 实际结果: 测试结果总是绿色的 我的问题: 我知道我们有回电,但承诺更好。 我知道AsyncWait是承诺的一种语法糖分。 我知道甚至还有RxJS(我在这里不使用) 不知何故,我不得不处理来自mogodb备份的回调。 看 我不明白我做错了什么,所以测试总是变成绿色(与下载并行运行)

我的Node应用程序中有一个Mocha测试,它应该测试Mongo DB JSON文档的DB导出是否正确。 在我的测试中,除了其他测试外,我还测试下载目录是否为空

预期结果: 测试应该等待下载,然后才检查目录是否为空

实际结果: 测试结果总是绿色的

我的问题: 我知道我们有回电,但承诺更好。 我知道AsyncWait是承诺的一种语法糖分。 我知道甚至还有RxJS(我在这里不使用)

不知何故,我不得不处理来自mogodb备份的回调。 看

我不明白我做错了什么,所以测试总是变成绿色(与下载并行运行)

mocha-test.js Databasemodule-to-be-tested.js 这会立即启动异步函数,并且

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