Я пытаюсь обернуть голову вокруг объекта обещания в javascript.Так вот у меня есть этот маленький кусок кода. У меня есть объект обещания и два console.log() по обе стороны объекта обещания. Я думал, что это будет печататьпонимание объекта обещания javascript
Hi
Там
Зами
но напечатанное
HI
zami
there
Почему это так. У меня есть понимание того, как работает обещание, но я понимаю, как работает асинхронный обратный вызов в javascript. Может ли кто-нибудь пролить свет на эту тему?
console.log('hi');
var myPromise = new Promise(function (resolve, reject) {
if (true) {
resolve('There!');
} else {
reject('Aww, didn\'t work.');
}
});
myPromise.then(function (result) {
// Resolve callback.
console.log(result);
}, function (result) {
// Reject callback.
console.error(result);
});
console.log('zami');
поэтому он асинхронный, как и другие веб-apis, такие как setTimeout, вызов ajax и т. Д. Любой код внутри pormise-объекта будет асинхронным? –
Да, обещает функцию очень похоже на setTimeout. Вы действительно можете сделать обещания от setTimeout, как показано здесь http://stackoverflow.com/questions/34255351/is-there-a-version-of-settimeout-that-returns-an-es6-promise –
в некотором примере я вижу писателей написал ajax-код внутри объекта prom.AJAX по умолчанию асинхронный. Почему он используется внутри обещаний? –