Этот пример кода не отвечает на любые ваши вопросы о the q library
.
Вместо этого он просто демонстрирует , как вы можете использовать обещание вместо обратного вызова для завершения асинхронная задача - которая кажется основной целью вашего кода.
(Для получения дополнительной информации и примеров вы можете проверить MDN: Promises )
Обратите внимание, что обещания являются альтернативой обратным вызовам, поэтому такое выражение, как promise(callback)
, обычно не пишется.
Кроме того, я только очень кратко рассмотрел q
, но я думаю, что Q.denodeify
, возможно, не является правильным методом , который следует использовать для задачи, которую вы пытаетесь выполнить sh ,
Для предложений, указывающих от c до q
, вы также можете найти этот ответ полезным.
function add(){
// Calling `add` will return a promise that eventually resolves to `7`
// There is no way this particular promise can reject (unlike most promises)
const myPromise = new Promise(function(resolve, reject) {
// The anonymous function we pass to `setTimeout` runs asynchronously
// Whevever it is done, it applies the promise's `resolve` function to `c`
setTimeout(function(){
const
a = 4,
b = 3,
c = a + b;
resolve(c);
}, 200);
});
return myPromise;
}
// `add` returns a promise that always resolves to `7`
// The `.then` method of this promise lets us specify a function that
// does something with the resolved value when it becomes available
add().then(function(resolvedValue){
console.log("addition result: " + resolvedValue);
});