javascript - TypeError: Cannot read property 'then' of undefined

查看:201
本文介绍了javascript - TypeError: Cannot read property 'then' of undefined的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

代码如下:

Wechat.prototype.uploadMaterial = function(type,material,permanent)
{
    var that = this;
    var form = {};
    var uploadUrl = api.temporary.upload;
    if(permanent)
    {
        uploadUrl = api.permanent.upload;
        //form继承permanent对象
        _.extend(form,permanent);
    }
    if(type === 'pic')
    {
        uploadUrl = api.permanent.uploadNewsPic;
    }else if(type === 'news')//图文
    {
        uploadUrl = api.permanent.uploadNews;
        form = material;
    }else{
        //meterial是一个文件路径
        form.media = fs.createReadStream(material)
    }

    return new Promise(function(resolve,reject){
        that
            .fetchAccessToken()
            .then(function(data){
                var url = uploadUrl + 'access_token=' + data.access_token;
                //不是永久类型,追加type
                if(!permanent)
                {
                    url += '&type='+type;
                }else{
                    form.access_token = data.access_token;
                }
                var options = {
                    method:'POST',
                    url : url,
                    json:true
                };
                //图文
                if(type === 'news')
                {
                    options.body = form;
                }else{
                    options.formData = form;
                }
                //对服务器发送请求
                request({method:'POST',url:url,formData:form,json:true}).then(function(response){
                    var _data = response[1];
                    console.log("执行")
                    if(_data) {
                        resolve(_data);
                    }else {
                        throw new Error('Upload meterial fails');
                    }
                })
                .catch(function(err){
                    reject(err);
                })
            })
    });
};

运行的时候,到then的时候总是报错,TypeError: Cannot read property 'then' of undefined
请问一下大神是哪里出错

解决方案

你确定这个fetchAccessToken方法返回了一个Promise对象?

这篇关于javascript - TypeError: Cannot read property 'then' of undefined的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆