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

js延迟写入

js延迟写入

牛魔王的故事 2019-02-13 17:13:34
在做一个数据处理的问题,中间会有ajax请求,最后请求到的数据不能拼接到数组中,这样改怎么处理?或者有更好的方式解决这个问题?下面是两个方法:
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

报告楼上,这个不归axios管

这个归 promise 管,要想代码好看,条件允许的情况下,使用 async 和await

还有楼主,代码随便改的,不一定完全正确,但就是这么个意思


function parseHtml(url, fun) {

    return new Promise((resolve,reject)=>{

    $.get(url, function(response, state, xhr) {

        if (state === "success" && xhr.status === 200) {

            let html = response.substring(response.indexOf("<body"), response.indexOf("</body>") + 7);

            html = html.trim().replace(/^\<body*?>/, "").replace(/\<\/body\>$/, "");

            resolve(html);

        } else {

            reject('some error')

        }

    });

    }

}


async function eCollapseSourceComputed() {

let source = this.eCollapseSource, //  这是一个对象

    arr = [];

const self = this,

    // 需要请求的字段

    needQuest = ["attachUrl", "content"];

source.map(function(val) {

    let obj = {};

    needQuest.map(function(field) {

        let url = val[field];

        if (url && typeof url === "string") {

            // 问题出在这儿

            let val= await parseHtml(url);

        }

    });

    arr.push(Object.assign(val, obj));

});

// 返回的数据没有请求到的数据

return arr;


查看完整回答
反对 回复 2019-02-21
  • 2 回答
  • 0 关注
  • 520 浏览
慕课专栏
更多

添加回答

举报

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