bluebird promises - 如何 return 回调中的 promise?

bluebird promises - how to return a promise out of callback?

假设我有以下功能

chrome.cookies.getAll({domain: 'google.com'}, callbackFn);

callbackFn 应该return所有可用的 cookie

现在我有一个很大的 main() 函数(我必须有这个函数)并且这个函数必须 return 给定页面的 cookie(作为承诺)。

我应该怎么做?

你可以做到

function main(){
    return new Promise(function (resolve/*, reject*/) {
         chrome.cookies.getAll({domain: 'google.com'}, resolve);
    });
}

你会像这样使用它:

main().then(function(cookies) {
     // eat cookies
});