我正在尝试制作时间转换工具,首先它会获取您输入的两个城市的坐标,然后相应地计算时间。
但我遇到的问题是获取坐标的函数需要一些时间,并且它也是异步的,因此执行顺序存在问题。
有没有办法可以确保在上一次完成之后执行下一个语句?
library("scales")
library(ggplot2)
reverselog_trans <- function(base = exp(1)) {
trans <- function(x) -log(x, base)
inv <- function(x) base^(-x)
trans_new(paste0("reverselog-", format(base)), trans, inv,
log_breaks(base = base),
domain = c(1e-100, Inf))
}
set.seed(12345)
test=rnorm(20,1000,5000)
n<-ceiling(max(test))
qplot(1:n, ecdf(test)(1:n), geom="point",xlab="check-ins",
ylab="Pr(X>=x)")+ geom_step()+
scale_x_continuous(trans=reverselog_trans(10), breaks = c(10000,1000,100,10,1))
您可以在github上查看整个代码: https://github.com/udit96rc/TimeConverter
您可以在此处查看该工具:http://uditchugh.me/pt
答案 0 :(得分:1)
在getCoordinates
中,您通过geocoder.geocode()
电话对Google API使用异步请求。此方法中的第二个参数是在请求完成时执行的实际回调。将自己的回调函数传递给getCoordinates
函数(作为第二个参数),并在实际请求完成处理后调用它。
function getCoordinates(city, callback) {
...
geocoder.geocode({ address: address }, function(results, status) {
...
if (typeof callback === 'function')
callback();
});
}
getCoordinates(cityOneString, function() {
getCoordinates(cityTwoString);
});