我尝试了async await
也尝试了Promise
,只要调用了$done({})
脚本就被立即结束了
我这个脚本的作用是获取接口的 response 然后向另一个接口提交这个 response,如果等待数据提交完成再调用 $done({})
延迟就太高了,提交数据只需要异步后台执行就可以了,不需要关注是否成功
我该如何写才能异步后台执行数据提交,同时立即调用$done({})
?
const body = $response.body
var bodyObj
try { bodyObj = JSON.parse(body) } catch (error) { }
const latestDataUpdateTimeKey = "latestDataUpdateTime"
const latestDataUpdateTime = $persistentStore.read(latestDataUpdateTimeKey)
var updateTime = 0
try {
updateTime = bodyObj.data.vehicleStatus.updateTime
} catch (error) { }
if (updateTime > 0 && latestDataUpdateTime != updateTime) {
console.log("检测到更新,上次更新时间:" + latestDataUpdateTime + ",本次更新时间:" + updateTime)
report()
} else {
console.log("未检测到更新")
$done({})
}
// report()
function report() {
$httpClient.post({
url: "http://localhost/status/save",
headers: {
"Content-Type": "application/json"
},
body: bodyObj,
timeout: 5
}, (error, response, data) => {
if (!error) {
$persistentStore.write(updateTime, latestDataUpdateTimeKey)
console.log("上报成功:" + data)
} else {
console.log("上报失败:" + error)
}
$done({})
})
}