过程式(命令式) 编程, 对人类来说是比较自然, 容易理解的
在 JS 中, 使用 async await
语法来实现 类似 同步调用的命令式编程
- 下载 polifyll regenerator-runtime 放到项目目录
./libs/
中 (也可以用 webpack 等引入) - 在需要使用 async/await 的 JS 文件的引用这个库文件。
import regeneratorRuntime from './libs/regenerator-runtime/runtime.js'
- 微信开发者工具的项目设置中 ES6 转 ES5 处于设置为打开
小程序的 Api 都是基于回调的, 需要改造为 Promise 类型的
const promisefy = api => {
return (options, ...params) => {
return new Promise((resolve, reject) => {
api({...options, success:resolve, fail:reject}, ...params)
})
}
}
export default promisefy
然后 promisefy(wx.login)() 即可
// app.js
import regeneratorRuntime from './libs/regenerator-runtime/runtime.js'
import promisefy from './promisefy.js'
App({
async onLaunch() {
const ret = await promisefy(wx.login)()
console.log(ret)
}
})