【发布时间】:2019-01-31 04:08:58
【问题描述】:
Javascript 代码,试图立即解决一个承诺:
var promiseData;
var promise = <<<promise maker>>>.then(function (myContent) {
console.log("success");
}, function () {
console.log("fail!");
});
Promise.resolve(promise)
console.log("about to return");
return promiseData;
哪个输出到控制台:
about to return
success
我有一个要求让promise立即返回(promise是在一个回调方法中创建的,并且该方法需要立即返回一个值,稍后返回数据意味着我们不再处于正确的上下文中并且该值(尚未返回)已被使用(未定义)。
关于我可能做错了什么的任何建议?
更新:
<<<promise maker>>> 是对返回承诺的依赖项的调用;
【问题讨论】:
-
什么是“承诺者”?你希望
Promise.resolve(promise)做什么? -
你应该等待承诺,这样任何依赖于结果的代码在完成之前都不会运行。
-
你不能像调用者期望的那样立即从异步操作中返回一个值:stackoverflow.com/questions/14220321/…
-
@Nnoel 那么你要么需要找到一种方法来避免“承诺制造者”,要么你需要改变你的框架(或者弄清楚如何在框架中做异步的东西)
-
promise 的主要用例是当一个值不会立即可用时。
标签: javascript promise