gr3*_*3co 3 javascript asynchronous mocha.js node.js express
我正在使用Mocha和Should.js为我的Node.js/Express/Mongoose项目编写测试,我正在测试访问MongoDB的函数.我希望这些测试完全独立于我的数据库中的实际记录,所以我想创建一个条目然后加载它,并对它进行所有测试,然后删除它.我写了我的实际函数(我在整个项目完成后编写测试),这样create
函数没有回调函数; 它只是在完成后呈现页面.在我的测试脚本中,我在调用load_entry
之后调用了我的函数create
,但有时create
需要比平常更长的时间,因此load_entry
当它无法实际加载文章时会抛出错误,因为它尚未创建.有没有办法确保在不使用回调的情况下完成异步函数?
如果我能提供更多信息,请告诉我.我看了整个谷歌,找不到任何真正回答我问题的东西,因为大多数解决方案只是说"使用回调!"
使用所谓的a promise
你可以在这里阅读更多相关信息.
有很多很棒的库可以帮到你.
Q.js是我个人喜欢的,现在它被广泛使用.许多其他人也存在 jQuery中的承诺.
以下是使用异步json-p
调用的aq promise的示例:DEMO
var time;
$.ajax({
dataType: 'jsonp',
type: 'GET',
url: "http://www.timeapi.org/utc/now.json",
success: function (data) {
time = data;
},
error: function (data) {
console.log("failed");
}
})
.then(function(){ // use a promise library to make sure we synchronize off the jsonp
console.log(time);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17241 次 |
最近记录: |