《4-04 第四天 上传临时素材之图片和视频》
来源:4-4 第四天 上传临时素材之图片和视频
Hero_Tan
2017-04-07
因为 bluebird + request 的新版本
else if (content === '5') {
var data = yield wechatApi.uploadMaterial('image', __dirname + '/2.jpg')
console.log('datadatadata: '+data.media_id)
reply = {
type: 'image',
mediaId: data.media_id
}
}
执行5这个回复图片的时候
在 Wechat.prototype.uploadMaterial 方法里面 的request会导致流程莫名其妙的执行了三次
request({methos: 'POST',url: url, formData:form, json:
true}).then(function(response){
var _data = response[1]
if(_data){
resolve(_data)
console.log(_data)
}
else{
throw new Error('Upload material fails')
}
})
现在还没有找到解决办法。。。看看大家有没有遇到
6回答
-
request({methos: 'POST'
应该是 request({method: 'POST'
有很少人遇到了这个问题,其中有一个学生是家里的宽带运营商导致有问题,换了手机 4G 热点就好了,还有的学生测试号异常,必须是很小很小的图片才行
022017-04-13 -
Scott
2017-04-10
koa 用 1.2.0 的版本
同时 request 用最新的版本,参考 request 的最新 API,获取 data 是通过 response.body 而不是 课程中老的 response[1]
再试试看
042017-04-13 -
Scott
2017-04-08
是奇怪,request(options) 这里,也会执行三次么,还是说,拿到 _data 后,后面的流程又执行了 3 次。
另外,request 可以安装新一点的版本了,新版本获取 _data 可以通过 response.body 直接获取
012017-04-10 -
子佳麦兜
2017-05-10
遇到同样的问题,不知道楼主有解了没有~~~
00 -
Hero_Tan
提问者
2017-04-10
谢谢老师一直的关注,现在能确定一些眉目了。
var Promise = require('bluebird')
var request = Promise.promisify(require('request'))
request(options).then(function (data) {
console.log('success') //连带整一个程序执行过程都执行了三次,打印了三次success,
})
that.fetchAccessToken().then(function (data) {
console.log('success') //打印一次success
})
上面的两部分代码按理论都是打印'success'的,可结果不是!
因为fetchAccessToken返回的是 Promise 是 return Promise.resolve(data)
而request(options) 返回的也是Promise
明显两个Promise的执行结果很不一样。
现在比较确定是版本问题
var Promise = require('bluebird')
var request = Promise.promisify(require('request'))
我的nodejs是
node -v
v6.9.5
我的package
"dependencies": {
"bluebird": "^3.5.0",
"ejs": "^2.5.6",
"heredoc": "^1.3.1",
"koa": "^2.2.0",
"lodash": "^4.17.4",
"raw-body": "^2.2.0",
"request": "^2.81.0",
"request-promise": "^4.2.0",
"sha1": "^1.1.1",
"xml2js": "^0.4.17"
},
但是我的blue 和request 都尝试过用你的package.json里面的版本,也是不行
所以我怀疑是不是nodejs版本或者koa版本的问题!
00 -
Hero_Tan
提问者
2017-04-08
这是代码的执行顺序,我找了两天,真的不知道问题出现在哪里。无语。。。
00
相似问题