怎么实现wx.request的同步
- 需求的场景描述(希望解决的问题)
let buf; if (bluetoothType == "jeez") { //简易蓝牙的指令 buf = that.string2buffer("open:05s"); } if (bluetoothType == "mac") { //门禁机的指令 buf = that.string2buffer("-b&-3-12069-"); } if (bluetoothType == "jz") { //嵌入式门禁开门指令 //获取用户的门禁权限列表 let powerList_url = 'CustomerAPI/Index.aspx?method=getdoorsauthpool&clientcode=559574802685&doornumber=qrs001'; http.get(powerList_url).then(res => { // let hex = '0101fe 010201' let hex = res.data; //16进制字符串转为ArrayBuffer let typedArray = new Uint8Array(hex.match(/[\da-f]{2}/gi).map(function (h) { return parseInt(h, 16) })) buf = typedArray.buffer }).catch(res => { }); } //发送开门指令 wx.writeBLECharacteristicValue({ deviceId: deviceId, serviceId: serviceId, characteristicId: write_id, value: buf, success: function (res) { console.log("buf", buf); console.log("write-suc", res); }, fail(res) { console.log(res); //发送开门指令失败时提示 that.openDoorFail(deviceId); } }) |
因为只有一个if中需要请求接口,所以不希望将wx.writeBLECharacteristicValue加入到promise.then中,有能么办法能让这段代码同步执行吗?
