Я пытаюсь написать чатбот для развлечения, и одной из его основных функций является поиск meme. Сначала я написал это в Python, но теперь я переписываю его на JavaScript, так как он может работать полностью на стороне клиента.Сценарий, вызывающий DevTools для сбоя
Вот мой JavaScript meme()
функция:
function meme(srch) {
reqUrl = "http://api.pixplorer.co.uk/image?amount=1&size=tb&word=meme";
memesrch = "";
while (srch) {
memesrch += "+" + srch[0];
srch.slice(1);
}
reqUrl += memesrch;
$.get(reqUrl, function(result) {
memeUrl = result['images'][0]['imageurl'];
});
return "<a href='" + memeUrl + "'><img src='" + memeUrl + "' style='height: 130px;' /></a>";
}
Вот исходная функция Python для него, если это может помочь:
def meme(srch):
reqUrl = "http://api.pixplorer.co.uk/image?amount=1&size=tb&word=meme"
if srch:
memesrch = ""
while srch:
memesrch += srch[0] + "+"
srch = srch[1:]
memesrch = memesrch[:-1]
reqUrl += memesrch
memeUrl = eval(urllib2.urlopen(reqUrl).read())['images'][0]['imageurl']
return "<a href='" + memeUrl + "'><img src='" + memeUrl + "' style='height: 130px;' /></a>"
Моя проблема состоит в том, что когда я первый запустить meme()
в консоль после загрузки/перезагрузки страницы, она говорит, что переменная memeUrl
не определена. Затем, со второго раза, он отлично работает. Однако, если я затем набираю meme(["doge"])
или передаю любую строку в массиве или даже строку, такую как meme("hello")
, в функцию meme()
, она ничего не возвращает, даже не ошибка. После этого все, что я напечатаю, ничего не возвращает, даже не что-то вроде 1+1
, или 3
, или $
. Через несколько секунд веб-страница выйдет из строя. Вот несколько скриншотов: Screenshot of DevTools, Screenshot of Webpage Crash.
Я понятия не имею, что их вызывает, поскольку единственное, что я могу думать о том, что может вызвать эту проблему, - это бесконечный цикл, но в моем коде нет ни одного.
Возможная Дубликат [? Как вернуть ответ от асинхронного вызова] (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-a-асинхронный вызов) – Andreas
['Array.prototype.join()'] (https://developer.mozilla.org/en-US/docs/ Web/JavaScript/Reference/Global_Objects/Array/join) – Andreas