如何在调用下一个请求之前完成第一个Ajax Get请求
How can I make first Ajax Get request be finish before I call next one?
我必须使用返回promise的方法。我想让第二个方法在第一个方法获取和操作数据之后执行。这个问题已经被问了好几次,但仍然找不到一种方法来解决它。这是我的代码:
self.getSpesialitet = function () {
console.log("Starting Spesialitet");
return $.get(options.getSpesialitetUrl, { 'recno': recno }, function (data) {
////Code
console.log("Success Spesialitet");
});
};
self.getVedtak = function () {
console.log("Starting Vedtak");
return $.get(options.getVedtakUrl, { 'recno': recno }, function (data) {
////Code
console.log("Success Vedtak");
});
};
$.when(self.getSpesialitet()).then(self.getVedtak()).then(console.log("Everything is done"));
这是我得到的结果:
Starting Vedtak
Starting Spesialitet
Everything is done
Success Vedtak
Success Spesialitet
我想得到的结果是:
Starting Vedtak
Success Vedtak
Starting Spesialitet
Success Spesialitet
Everything is done
您可以使用success
调用来链接您的函数,如下所示:
self.getVedtak().success(function(){
self.getSpesialitet().success(function(){
console.log('Everything is done');
})
})
工作小提琴:https://jsfiddle.net/robertrozas/sjg44pz2/1/
请理解$.get
、$.post
和$.ajax
调用始终是异步调用。这就像火一样,忘记了。它不会等到执行完成。为了使代码正常工作,您需要在第一个方法返回时调用第二个方法。
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- 请求准备一个文件并返回路径,允许用户在准备好时下载
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- QML中的第一个XHR请求非常慢(运行在v8上的javascript)
- AngularJS:如何加载第一个N个JSON响应,然后在页面渲染后请求rest
- Angularjs:ng-model绑定在第一个AJAX请求后不起作用
- 如果第一个ajax请求在第一个调用获得响应之前再次被调用,如何停止第一个ajax请求