首頁  >  問答  >  主體

javascript - fetch 可以同步请求数据吗?

fetch(userLoginUrl, {

            method: 'POST',
            headers: {
                'Content-Type': 'application/json;charset=UTF-8'
            },
            body: JSON.stringify(userObj),
        }).then(function (res) {
            if (res.ok) {
                res.json().then(function (data) {
                    //console.log(data);
                    if (data.code == 0) {
                        dataTest = data;
                        dataBu = true;
                        applyFn(data);
                        //上面成功后再次出一个请求 ????
                    }

                });
            }
        }).catch(function (err) {
            // console.log(err)
        });
        
PHPzPHPz2749 天前1421

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-11 11:15:55

    fetch(userLoginUrl, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json;charset=UTF-8'
        },
        body: JSON.stringify(userObj),
    }).then(function (res) {
        if (res.ok) {
            // return
            return res.json().then(function (data) {
                //console.log(data);
                if (data.code == 0) {
                    dataTest = data;
                    dataBu = true;
                    applyFn(data);
                    return fetch(url) // 第二个请求
                }
    
            });
        }
    }).then(function(res){
    console.log('第二请求')
    }).catch(function (err) {
        // console.log(err)
    });

    回覆
    0
  • 高洛峰

    高洛峰2017-04-11 11:15:55

    fetch同步请求似乎好像没有,虽然文档中有提到一个synchronous-flag,但是调用参数里面没有提供这个配置项。
    不是很明白你需要做什么。如果你是要在userLoginUrl的请求成功后再发送另外一个请求,那么你注释的地方再调用个请求就行了。本来在then就是在请求成功后才会调用的。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-11 11:15:55

    ES7的话,可以用async/await用同步的思维写异步的代码。

    async function fn() {
        let res_1 = fetch(url_1);
        let res_2 = fetch(url_2, res_1);
    }

    回覆
    0
  • 取消回覆