나는 엔터테인먼트 용 챠트 봇을 작성하려고하는데, 주요 기능 중 하나는 밈 조회이다. 먼저 파이썬에서 작성했지만 지금은 자바 스크립트로 다시 작성하고 있습니다. 클라이언트 측에서 완전히 실행할 수 있기 때문입니다. 그것은 도움이 될 경우DevTools에서 충돌이 발생하는 스크립트
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>";
}
여기에 원래 파이썬 함수는 다음과 같습니다 : 여기
내 자바 스크립트 meme()
기능입니다
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.
이 문제의 원인이 될 수있는 유일한 생각은 무한 루프이지만이 코드에는 아무 것도 없습니다.
while (srch) {
...
}
srch.slice
[? 내가 비동기 호출의 응답을 반환 할 방법] (의 가능한 중복 http://stackoverflow.com/questions/14220321/-i-return-from-an-asynchronous-call) – Andreas
['Array.prototype.join()'] (https://developer.mozilla.org/en-US/docs/) 웹/자바 스크립트/참조/글로벌 _ 객체/배열/조인) – Andreas