Я создаю функцию удобства, и я хотел бы вернуть обещание функций в виде функции .then. В настоящее время у меня есть:Предоставление обещания обернутой функции
function foo(a, b){
b = b || 'default';
asyncBar(a + " " + b, function(err, value){
if(err)
console.log("oh shit");
else
return value;
}
};
Я мог бы добавить обратный вызов аргумент Foo, но не только в том, что неуклюжем, но это устранило бы «удобство» из функции удобства. Я бы предпочел только foo.then(function(){...})
, но я не уверен, как сдать обещание от asyncBar()
.
UPDATE: Я делаю это в Node.js, а обратный вызов - из случайной библиотеки JSON-RPC. Я предпочел бы использовать ES6-Promises, если это необходимо ....
вы хотите запрограммировать 'deferred' из JQuery в ванильным Javascript или что' .then() 'вы имеете в виду, или же тег' jQuery' Мисс? – loveNoHate
@dollarvar jQuery - это _one_ библиотека, которая имеет ограниченную (и некорректную) реализацию обещаний. Есть более серьезные библиотеки обещаний, которые предлагают более богатые и гораздо более быстрые функции, такие как Bluebird, RSVP или Q. –
@BenjaminGruenbaum Спасибо, я только узнал, что это даже «родная» (если экспериментальная) функция Javascript. – loveNoHate