这是我获取openId的代码,仅供参考:
app.js代码:
getOpenId: async function () {
if(this.globalData.openId) {
return this.globalData.openId
}
console.log('getOpenId: storage')
//老用户重载小程序运行到此
let openId = wx.getStorageSync('openId')
if(openId) {
this.globalData.openId = openId
return openId
}
console.log('getOpenId: cloud')
//新用户运行到此
let r = await wx.cloud.callFunction({ name: 'login' })
wx.setStorageSync('openId', r.result)
this.globalData.openId = r.result
return r.result
},
云函数:login:
exports.main = event => { return event.userInfo.openId }
任何页面:
onLoad: async function (options) {
this.openId = await getApp().getOpenId()
}
如何改造?
假如我有一个 exportsomefuncs.js 和一个index.js 需要require('exportsomefuncs.js'),
这个exportsomefunc.js 是 require('runtime.js'), function is async and await,
此时:在index.js 我没法使用exportsomefuncs,报错,在index.js 里require('exportsomefuncs.js')
还是报错,请问你有什么方案?
把这个文件引用进来:
https://github.com/facebook/regenerator/blob/master/packages/regenerator-runtime/runtime.js
然后在app.js里声明:
const regeneratorRuntime = global.regeneratorRuntime = require('./lib/runtime.js')
就可以在小程序端使用async/await了。
感谢你的答复,
1) 我在app.js 倒入runtime.js, 并设成global, 在index.js, 用async await, 很好,
但要 加一句 const regeneratorRuntime = global.regeneratorRuntime
2) 另外,在 otherModule.js 我使用 async await 加上 const regeneratorRuntime = global.regeneratorRuntime
在上面的 index.js , require('otherModule.js'), 并调用 报错:
VM1733:1 thirdScriptError
sdk uncaught third Error
Cannot read property 'mark' of undefined
TypeError: Cannot read property 'mark' of undefined
at http://127.0.0.1:33033/appservice/general/getUserAllInfo.js:4:64
at http://127.0.0.1:33033/appservice/general/getUserAllInfo.js:31:2
at require (http://127.0.0.1:33033/appservice/__dev__/WAService.js:22:26841)
at http://127.0.0.1:33033/appservice/__dev__/WAService.js:22:26448
at http://127.0.0.1:33033/appservice/pages/index/index.js:7:13
at require (http://127.0.0.1:33033/appservice/__dev__/WAService.js:22:26841)
at <anonymous>:50:7
at HTMLScriptElement.scriptLoaded (http://127.0.0.1:33033/appservice/appservice?t=1546784373263:1532:21)
at HTMLScriptElement.script.onload (http://127.0.0.1:33033/appservice/appservice?t=1546784373263:1544:20)
不知道这个mark 是什么?
刚试了一下,小程序已经原生支持async/await模式了。不需要runtime.js了。
非常感谢,确实是,引入module 也没问题,但在“详情“ 要不勾”es6 转es5"
你说的是服务端吧?