Я пытаюсь понять обещание. Но здесь я смущен. Я хочу создать тестовую функцию, которая будет печатать 3000 через 3 секунды, затем распечатать 2000 через 2 секунды, а затем распечатать 1000 через 1 секунду. Вот мой код:Может ли кто-нибудь объяснить мне следующий код?
'use strict';
var Q = require('q');
function delayConsole(timeOut) {
var defer = Q.defer();
setTimeout(function(){
console.log(timeOut);
defer.resolve(2000);
},timeOut);
return defer.promise;
}
// This works
delayConsole(3000).then(function(){
return delayConsole(2000);
}).then(function(){
return delayConsole(1000);
});
// This doesn't work. Why?
delayConsole(3000).then(delayConsole(2000)).then(delayConsole(1000));
Возможно, стоит отметить, что Q поставляется с функцией '.delay'. –
Это объясняет многое. Спасибо – eeandrew