为了账号安全,请及时绑定邮箱和手机立即绑定

嵌套的 request,如何等待 request function 的完成?

嵌套的 request,如何等待 request function 的完成?

守着星空守着你 2018-10-16 17:14:26
使用了下面的代码:request(firstparams, function () {    var secondparams = {    // ******    };    request(secondparams, function () {        for (i=0; i<3; i++) {            var thirdparams = {            // ******            };            request(thirdparams, function () {                console.log('foo');            });        }        console.log('bar');    });}); 想要获得如下的结果:foofoofoobar但是结果却是:barfoofoofoo
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

Promise.all吧,可以等待多个请求都结束了使用then处理后面的行为 
写个demo 适当改一下应该就可以了

// ajax函数 可以用request封装var ajax = (url, type) => {    return new Promise((resolve, reject) => {        // 这块可以自己修改一下
        request({
            url,            cb: function(data) {                console.log('foo')
                resolve(data)
            }
        })
    })
}// 生成promise要用的数组var arr = []for (i=0; i<3; i++) {
    arr.push(ajax('/xxx/xxx'))
}// 执行 等到三次请求都结束后 打印出来bar 因为每次请求都打印foo// 所以结果应该是foo foo foo barPromise.all(arr).then((value) => {    
console.log('bar')
})


查看完整回答
反对 回复 2018-11-16
  • 1 回答
  • 0 关注
  • 551 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信