我正在使用jupyter而我的python版本是3.5。在while循环中,执行顺序不正确,输入语句在print语句之前。这是我的代码。
var JSONurl = "http://coincap.io/page/XRP"
document.getElementById("dropdown-btc").addEventListener("click", function(){
changeCoin("btc");
});
document.getElementById("dropdown-eth").addEventListener("click", function(){
changeCoin("eth");
});
document.getElementById("dropdown-xrp").addEventListener("click", function(){
changeCoin("xrp");
});
$( document ).ready(function () {
console.log( "ready!" );
$(function getRippleVals() {
console.log("");
$.getJSON(JSONurl,
function (data) {
//... extra function methods are here, not relevant to the problem.
});
setTimeout(getRippleVals, 5000);
});
});
function changeCoin(coin){
console.log(coin);
var coin = coin.toUpperCase();
$("#dropdownMenuButton").html(coin);
if(coin === "BTC")
{
JSONurl = "http://coincap.io/page/BTC";
$("#pairing-text").html("BTC : USD");
lastPrice = 0;
}
else if(coin === "ETH")
{
JSONurl = "http://coincap.io/page/ETH";
$("#pairing-text").html("ETH : USD");
lastPrice = 0;
}
else if(coin === "XRP")
{
JSONurl = "http://coincap.io/page/XRP";
$("#pairing-text").html("XRP : USD");
lastPrice = 0;
}
}
答案 0 :(得分:2)
我能够在OSX上重现Chrome 63下的行为。我添加了几个连续的print(a)
语句,输入字段最终的位置是随机的:在它们之前,在它们之后或之间。我怀疑是每个显示和打印调用都向服务器发送请求,但异步等待其结果,以便在input
的结果准备就绪之前再次调用print(a)
。
这不是一个优雅的解决方案,但在time.sleep(.02)
之后添加一个小睡眠(print(a)
)可以解决我的问题。
答案 1 :(得分:1)
这是一个众所周知的Jupyter问题: