我试图把头放在JavaScript中的promise对象周围。因此,这里有这段代码。我在promise对象的两侧都有一个promise
对象和两个console.log()
。我以为会打印
但它打印
hi
zami
There!
为什么会这样呢?我对Promise的工作方式了解为零,但是我了解异步回调在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');
最佳答案
promise 执行是异步的,这意味着它已执行,但是程序不会等到完成后再继续其余代码。
基本上,您的代码正在执行以下操作:
如果要打印“嗨,扎米”,则必须
myPromise.then(function (result) {
// Resolve callback.
console.log(result);
console.log('zami');
}, function (result) {
// Reject callback.
console.error(result);
});