В то время как l oop заставляет браузер зависать с Brython - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь получить ответ на запрос API, сделанный с помощью ajax. ajax (), и ответ сохраняется в ['apiResponse'] в HTML5 Local Storage (но остальная часть python функция обрабатывает, не дожидаясь, пока она будет помещена в localStorage).

Из-за этого мне нужно дождаться его, прежде чем получить ответ, и я подумал, что могу сделать то, что сделал ниже, чтобы программа ждала до это продолжается.

К сожалению, браузер, кажется, зависает каждый раз, когда я кладу какое-то время l oop ...

Если кто-то знает, как заставить Brython и браузер остановить зависание или другой метод делать то, что я хочу ...

(Это действительно помогло бы мне, поскольку это единственный шаг до получения ответа на запросы API Spotify)


from browser import ajax #to make requests
from browser.local_storage import storage as localStorage #to access HTML5 Local Storage

import json #to convert a json-like string into a Python Dict

#Request to the API
def on_complete(req):
    if req.status==200 or req.status==0:
        localStorage['apiResponse'] = req.text
    else:
        print("An error occured while asking Spotify for data")

def apiRequest(requestUrl, requestMethod):
    req = ajax.ajax()
    req.bind('complete', on_complete)
    req.open(requestMethod, requestUrl, True)
    req.set_header('Authorization', localStorage['header'])
    req.send()

def response():
    while localStorage['apiResponse'] == '':
        continue
    print('done')
    return json.loads(localStorage['apiResponse'])

Заранее спасибо!

...