【发布时间】:2019-03-23 20:05:48
【问题描述】:
我不明白 Promise。我知道 Promises 是可以成功或错误地完成的对象。 Promise 可以很好地执行异步函数并通过then 连接其他异步函数。 Promise 的结果作为参数传递给最后执行的 Promise 的 then 方法内的回调函数(如果 Promise 正确结束)。
这个例子不起作用。我正在通过 setTimeout 模拟异步调用。我的函数返回一个整数。我希望得到 5 作为prom2 的结果。为什么不起作用?我做错了什么,为什么?
var getProductId = function(){
setTimeout(function () {
return 5;
}, 1500);
};
var prom2 = Promise.resolve(getProductId);
prom2.then(function(result){
console.log("5 = " + result);
});
我也试过了:
var getProductId = function(){
setTimeout(function () {
return 5;
}, 1500);
};
var prom2 = Promise.resolve(getProductId());
prom2.then(function(result){
console.log("5 = " + result);
});
注意:我想使用Promise.resolve 而不是new Promise。
【问题讨论】:
-
Promise.resolve使同步代码表现得异步,它创建一个立即解决的承诺,无论你给它什么值。它不能与异步代码一起使用。即使你不想,你也应该使用new Promise
标签: javascript typescript es6-promise