2015-05-13 6 views
1

Скажу, у меня есть следующая функцияобещания bluebird - как вернуть обещание из обратного вызова?

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

где callbackFn должен вернуть все кук доступных

теперь у меня есть большой main() функция (я должен иметь эту функцию), и эта функция должна возвращать кук данная страница (как обещание).

Как мне это сделать?

+0

следует добавить, что подпись 'callbackFn' есть. Если это 'callback (err, cookies)' или просто 'callback (cookies)' –

+1

@ t.niese Он просто возвращает массив файлов cookie: https://developer.chrome.com/extensions/cookies#method-getAll (Я думаю, это не должно терпеть неудачу, будучи локальным) –

+0

ОК, тогда его как 'dystroy' написал. –

ответ

0

Вы можете сделать

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

Вы бы использовать его как это:

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

Это что-то вроде пользовательского метода .promisify()? Я пробовал это, но он сделал ошибку ... – Novellizator

+0

Что забросило ошибку? 'новое обещание'? Какая ошибка? –

+0

Необработанное отклонение (<[{"domain": ". L.facebook.com", "expirati ...>, отсутствие трассировки стека) (попробовал на" facebook.com "вместо" google.com ") ... Bluebird.promisify (chrome.cookie.getAll) бросил это. Теперь я попробую ваше решение :) – Novellizator

Смежные вопросы