2018-10-11 封装http.get()方法返回一个Promise对象

    function myAsyncFunction(url) {
    return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest();
        xhr.open("GET", url);
        xhr.onload = () => resolve(xhr.responseText);
        xhr.onerror = () => reject(xhr.statusText);
        xhr.send();
    });
    }

受到上述启发,于是如下处理http.get()方法返回promise:

        const linktestbyid = async function(querydata, queryday, callback) {
        const rs = await mongo.mongoqueryPromise(querydata, 'ClickLog', queryday, conf.mongo.dbstr);
        //save click log info
        const clickresult = saveclickarray(rs, querydata, queryday);
        const clickid = clickresult[0]['clickid'];
        const callbackurl = clickresult[2]['callbackurl'];
        //sync to advertiser side callback url
        return new Promise((resolve, reject) => {
            http.get(callbackurl, function(req, response) {
                var html = '';
                req.on('data', function(data) {
                    html += data;
                });
                req.on('end', async() => {
                    console.log("adv side callback result:", html);
                    const result = await saveeventarray(html, querydata, clickid, clickresult);
                    debug("linktestbyid final rs:", result);
                    // callback(result);
                    resolve(result);
                });
            });
        });
    }

你可能感兴趣的:(2018-10-11 封装http.get()方法返回一个Promise对象)