我正在编写一个页面,其中我们正在进行多次休息服务调用以实现我的功能。为了添加更多信息,我必须将serviceCall-ONE的响应作为serviceCall-TWO的请求传递。同样适用于Servicecall-THREE
$('#button').click(function() {
fun1(); /* Actual called functions are written in a separate methods */
fun2();
fun3();
});
有没有办法在不使用.Done或.Then的情况下实现上述功能。 原因是不想实现.done回调是我应该能够为所有3种方法分别编写单独的单元测试用例,并且测试用例可以相互独立。
答案 0 :(得分:1)
我认为您可以通过Caolan的异步库提出此请求 - https://github.com/caolan/async#waterfall
答案 1 :(得分:1)
如果你想使用单元测试,没有理由你不能仅仅使用函数(){}之类的空函数来“模拟”完成的回调 - 这是标准做法。
看看sinon图书馆 http://sinonjs.org/
答案 2 :(得分:1)
你可以用3个ajax函数实现你想要的。 尝试类似的东西:
$('#button').click(function() {
ajax_function1();
});
ajax函数可能如下所示:
function ajax_function1(){
var url = "http://myurl.com";
var data = "some data";
jQuery.ajax({
async: true,
type: 'POST',
url: url,
data: data,
dataType: "json",
success: function(data, textStatus, jqXHR) {
if(data.status == 'success'){
//call your second function
ajax_function2(data);
} else {
}
}
});
}
等