云函数回调成功后对如何对变量进行赋值?
发布于 7 年前 作者 jinyang 12861 次浏览 来自 官方Issues

如图,程序运行时发现ordertime和orderid均为空,但在返回值res中数据是确切存在的,也能正确输出学校名(前面用了that=this)。

所以程序的错误是在哪里?应该如何更改?

3 回复

问题结论:这问题产生的错误不在于赋值,而在于运行顺序。代码里先获取时间,再上传数据,但在控制台里却显示先上传,再返回时间。这也是为什么我运行第二次时发现存在数值的原因。之后更改两个函数的位置即可。(下图为未改前的情况)

没那没复杂吧,也没必要使用云函数

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]

你的云函数是如何写的,复制代码我看看

回到顶部