二个方法,每个方法都有ajax请求,有没有办法让二个方法按顺序执行,第一个方法不管成功失败,都会执行第二个。

发布于 2022-09-06 07:36:02 字数 250 浏览 15 评论 0

比如说

`
var a = function() { fetch('/aa').then(res => {xx}) };
`var b = function() {  fetch('bb').then(res => {xxx})};
 }

有二个方法。在页面载入的时候,我要在执行完a方法中的fetch的hthen之后再执行b里面的方法,除了把b方法写在a方法的回调中,有什么其他的办法嘛??? 新手求教!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

-柠檬树下少年和吉他 2022-09-13 07:36:02

请了解一下promise和async

冷默言语 2022-09-13 07:36:02

楼上正解,ES6的promise和async可以完美解决。
ES6 promise/async

如果不熟悉这个用法或者不喜欢这个用法,可以用函数包裹第二个ajax,在第一个ajax请求成功或失败后进行调用

清音悠歌 2022-09-13 07:36:02

a方法中return出一个promise

浮世清欢 2022-09-13 07:36:02

如有错误 请指正 同是新手

    async function a(){
           return new Promise((resolve)=>{
               $.ajax({
                   url: 'getData.php',
                   data: { 'a':1,'b':2},
                   dataType: 'json',
                   success:function(data){
                        resolve(data);
                   },
                   fail:function(err){
                        resolve(err);
                   }
               })
           })
       }

       async function b(){
            await a();
            console.log('b start');
       }

      
       b();
情栀口红 2022-09-13 07:36:02
var a = function() { return fetch('/aa') };
var b = function() {  return fetch('bb')};

a()
.then(r => {
  console.log('a')
})
.catch(err => {
  console.log('err')
})
.finally(r => {
 return b()
})
.then(r => {
   console.log('b 运行')
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文