在第一个js文件中我写了一个判断:
if (isCoincide(参数...)){ } else { } |
在第二个js文件中定义 isCoincide 函数:
export function isCoincide(参数...){ var res_data var promise = new Promise((resolve, reject) => { wx.request({ url: url, data: {}, header: header, success: function (res) { resolve(res); res_data = res.data }, fail: function (res) { reject(res.errMsg || 'failed' ); } }); }); promise.then(()=>{ console.log(res_data) return judgeCoincide(参数..., res_data) }) console.log( "end" ) } |
这个judgeCoincide是用来判断wx.request获得的返回值是否满足我的要求
问题是:
wx.request是异步执行,我希望isCoincide能够等到
promise.then(()=>{
console.log(res_data)
return
judgeCoincide(参数..., res_data)
})
执行完之后再返回我的判断结果,而不是直接console.log(
"end"
)
就返回了,这样的话我的第一个js文件的if判断一直都是true
请问有什么好的解决办法吗?我在网上找了很久,promise貌似不能够解决异步的问题,我不希望使用while循环等待或者setTimeOut
利用 async await