云函数回调成功后对如何对变量进行赋值?
如图,程序运行时发现ordertime和orderid均为空,但在返回值res中数据是确切存在的,也能正确输出学校名(前面用了that=this)。
所以程序的错误是在哪里?应该如何更改?
如图,程序运行时发现ordertime和orderid均为空,但在返回值res中数据是确切存在的,也能正确输出学校名(前面用了that=this)。
所以程序的错误是在哪里?应该如何更改?
问题结论:这问题产生的错误不在于赋值,而在于运行顺序。代码里先获取时间,再上传数据,但在控制台里却显示先上传,再返回时间。这也是为什么我运行第二次时发现存在数值的原因。之后更改两个函数的位置即可。(下图为未改前的情况)
没那没复杂吧,也没必要使用云函数
getTimeAndId: function () {
let ranNum = (len) => {
var m = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], res = []
while (len) {
var b = parseInt(Math.random() * len) - 1,
res.push(m.splice(b, 1).shift())
len -= 1
}
return res
}, date = new Date(new Date().getTime() + 8 * 3600 * 1000), data = {}
data.time = date.toJSON().replace(/T/g, ’ ‘).replace(/\.\d+Z$/g, ’').trim()
data.orderId = data.time.replace(/[-: ]/g, ‘’).trim() + ranNum(5).join(‘’)
console.log(data)
}
//===============================
上面的 ranNum 方法
随机5个数字 ranNum(5) => 如:[2,4,5,8,7]