怎么实现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中,有能么办法能让这段代码同步执行吗?