开发过程中问题记录

# 小程序 ## 如何等待异步读取完成? 解决:使用 async await ```js nfcA.connect({ success: async function (res) { console.log('设备已连接', res) var password = new Uint8Array([0x11, 0x22, 0x33, 0x44]); let nfc_ndef = new NFC_NDEF.NFC_NDEF(ndef_adapter,nfcA, password, aid) // var data = nfc_ndef.SetPassword(); var data = await nfc_ndef.Read() ; console.log("异步暂停"); console.log(data); // nfc_ndef.Write(data) }, fail: function (err) { console.log('设备联接错误', err); } }); ``` ``` const nfcIsConnected = option => { return new Promise((resolve, reject) => { nfcA.isConnected({ success: resolve, fail: reject, }) }) } nfcIsConnected() .then(res => { console.log("设备已连接", res) }).catch(err => {console.log('设备连接失败', err),reject(err)}) ``` [小程序中的异步回调问题](https://zhuanlan.zhihu.com/p/112147618#:~:text=%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%B8%AD%E6%9C%89%E5%A4%A7%E9%87%8F%E6%8E%A5%E5%8F%A3%E6%98%AF%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%EF%BC%8C%E6%AF%94%E5%A6%82%20wx.login%20%28%29%20%E3%80%81%20wx.request%20%28%29%20%E3%80%81%20wx.getUserInfo,%28%29%20%E3%80%81%20fail%20%28%29%20%E5%92%8C%20complete%20%28%29%20%E4%BD%9C%E4%B8%BA%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E4%B8%8D%E5%90%8C%E6%83%85%E5%86%B5%E4%B8%8B%E7%9A%84%E5%9B%9E%E8%B0%83%E3%80%82) [有用参考](https://juejin.cn/post/6844903766064381966) ## 自定义组件具有表单提交能力 使用内置 behaviors wx://form-field-group 使自定义组件有类似于表单控件的行为。 form 组件可以识别这些自定义组件,并在 submit 事件中返回组件的字段名及其对应字段值。 组件中包含以下代码: ```language Component({ behaviors: ['wx://form-field'], )) ``` 使 form 组件可以识别到这个自定义组件内部的 button , 如果自定义组件内部有设置了 form-type 的 button ,它将被组件外的 form 接受。 例如,页面的结构如下: ```language <form bindsubmit="submit"> <input name="name" placeholder="请输入名字"></input> <custom-comp></custom-comp> </form> ``` 组件 custom-comp 自身结构如下: ```language <button form-type="submit">submit</button> ``` 此时点击组件内的 button ,将触发 form 的 submit 事件。