我正在处理一些API,需要等待其回调的回复 我试图使用全局变量来指示发送和回复状态,如下所示:
STATUS = {
'FAIL': -1,
'NONE': 0,
'SENT': 1,
'DONE': 2,
}
callbackstatus = STATUS['NONE']
我的回调是这样的:
@onCallback
def thisCallback(err):
if err == 0:
callbackstatus = STATUS['DONE']
else:
callbackstatus = STATUS['FAIL']
我想我的函数可以捕获callbackstatus的更改,但是不能:
def myfunc:
while True:
global callbackstatus
if callbackstatus == STATUS['NONE']:
callbackstatus = STATUS['SENT']
AskforCallBack() # thisCallback will be called after this
elif callbackstatus != STATUS['SENT']:
break
类似的事情,在API调用thisCallback之后,callbackstatus更新为STATUS ['DONE'];但是myfunc将callbackstatus改回STATUS ['SENT']。
我了解到myfunc内部不应更改全局变量。在此阶段,我不想将所有代码都放在def之外,也不希望将它们放入Class中。
我想知道这种情况是否有解决方案?也许人们通常如何处理来自API的回调?