此扩展程序调用Goo.gl URL缩短器,然后尝试将其回复加到一个字符串中(用于发送电子邮件)。但是,由于它是异步的,因此代码在添加缩短的URL之前继续运行。如何在继续操作之前将其添加到字符串中?
for(i;i<length;i++){
getShortURL(tabs[i].url, function(short_url) {
string += encodeURL(short_url);
});
}
//do something with string...
//
function getShortURL(long_url, callback ){
...
}
最佳答案
返回url字符串后,您可以在callback
内继续执行操作。
for(i;i<length;i++){
getShortURL(tabs[i].url, function(short_url) {
string += encodeURL(short_url);
//do something with string...
});
}
//
function getShortURL(long_url, callback ){
...
}
如果代码需要在所有URL返回后运行,请使用条件检查这是您的最后一个代码。
这可能对您有用:
for(var i=0,x=0;i<length;i++){
getShortURL(tabs[i].url, function(short_url) {
string += encodeURL(short_url);
x++;
if (x === length) {
//do something with string...
}
});
}
//
function getShortURL(long_url, callback ){
...
}