2011-04-04 64 views
0

我不是很熟悉javascript中的回调函数以及它们如何处理数据。回调函数数据处理

我想要实现这样的事情在谷歌浏览器

function getBookmarkBar() 
{ 
    chrome.bookmarks.getChildren('1',function(bookmarkNodes) 
    { 
    return bookmarkNodes; 
    }); 
} 

function getOtherBookmarks(folderId) 
{ 
    chrome.bookmarks.getChildren(folderId,function(bookmarkNodes) 
    { 
    return bookmarkNodes; 
    }); 
} 

function doprocessing(){ 
{ 
    bookmarkbarNodes=getBookmarkBar(); 
    otherNodes=getOtherBookmarks('2'); 

//do some processing for bookmarkbarNodes and otherNodes 
} 

是有可能的方式(或尽量接近)这样做呢? 现在我这样做是通过一个单一的功能,但是这将是因为检索和修改逻辑耦合的一个坏主意:

function process{ 
chrome.boomarks.getChildren('1',function(bookmarkNodes){ 
    chrome.bookmarks.getChildren('2',function(otherNodes){ 
    //do processing 
    }); 
}); 

写在上面泛型函数代码将使其高度可重用的。

回答

0

没有办法同步功能。此外,这样做是一个糟糕的主意,因为在函数完全执行之前,您会阻止该程序。

回调是一件好事。 API完全是异步的有一个很好的理由。 他们不希望你同步这些功能。

+0

是有道理的。谢谢 ! – anp 2011-04-05 06:16:50