首页 > 组成数组不成功,请大神指点

组成数组不成功,请大神指点

                var data = {};
                var photos = new Array();
                var photosList = $api.domAll(".uploadPhotos");//选择所有图片 
                for (var ii = 0; ii < photosList.length; ii++) {
                    per = $api.attr(photosList[ii], 'src');
                    trans = api.require('trans');//转成base64的调用函数
                    trans.decodeImgToBase64({
                        imgPath : per//图片路径
                    }, function(ret, err) {
                        if (ret.status) {
                            var dataUrl = 'data:image/png;base64,' + ret.base64Str;
                            photos[ii] = dataUrl;
                            alert(photo[ii]);//有多少张图片就弹出几次base64数据
                            return photos[ii];
                        } else {
                            api.alert({
                                msg : err.msg
                            });
                        }
                        return photos[ii];
                    });

                }
                data['photos'] = photos;alert(photos);
                alert(photos.length);//弹出 0

说明组不成数组,请问大神要怎样才能组入数组呢?return这东西不会用,不知是不是return放错了。请大神指点。。


估计 decodeImgToBase64() 是异步的吧?


    photo = ['http://a6a9bb2b2535f09d119f.b0.upaiyun.com/apicloud/c4de4fc78f0ce0ffaa2a9dd23b93884d.jpg','http://a6a9bb2b2535f09d119f.b0.upaiyun.com/apicloud/14ce2856073a87905a498355c2b4cbff.jpg'];

        var imgsArr=[];
        for (var i in photo) {
            var img = new Image();
            img.src = photo[i];//图片路径
            img.onload = function () {
                var that = this;
                //生成比例 
                var w = that.width,
                    h = that.height,
                    scale = w / h;
                    w = 640 || w;
                    h = w / scale;
                //生成canvas
                var canvas = document.createElement('canvas');
                var ctx = canvas.getContext('2d');
                canvas.setAttribute('width',''+w+'');
                canvas.setAttribute('height',''+h+'');
                ctx.drawImage(that, 0, 0, w, h);
                var base64 = canvas.toDataURL('image/jpeg', 1 || 0.6 ); 
                console.log(JSON.stringify(base64));        
                imgsArr.push(base64);
            }

        }
    console.log(JSON.stringify(imgsArr));

这样也组不成功,请高手指点

【热门文章】
【热门文章】