javascript没有解决承诺

javascript没有解决承诺,javascript,promise,Javascript,Promise,Javascript代码,正在尝试立即解析承诺: var promiseData; var promise = <<<promise maker>>>.then(function (myContent) { console.log("success"); }, function () { console.log("fail!")

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;
我需要让承诺立即返回(承诺是在回调方法中创建的,该方法需要立即返回值,稍后返回数据意味着我们不再处于正确的上下文中,并且值(尚未返回)已被使用(未定义)

有没有关于我可能做错了什么的建议

更新:
是对返回承诺的依赖项的调用;

看起来您希望
承诺。resolve(promise)
立即停止,等待承诺得到解决,然后继续。这将接近同步执行

但是,
Promise.resolve(value)
返回一个立即用
value
解析的承诺,它不会解析现有的承诺

你要找的是等待(或者只是承诺。然后):


如果我没有错的话,这个函数流接近您所需要的,但它也返回一个解析为
promiseData
的承诺:

async function getPromiseData() {
  try {
    const promiseData = await <<<promise maker>>>;
    console.log("success");
    console.log("about to return");
    return promiseData;
  } catch (err) {
    console.log("fail!");
  }
}
异步函数getPromiseData(){ 试一试{ const promiseData=等待; 控制台日志(“成功”); console.log(“即将返回”); 归还承诺数据; }捕捉(错误){ 日志(“失败!”); } }
什么是“promise maker”?您希望promise.resolve(promise)做什么?您应该等待承诺,这样依赖于结果的任何代码在完成之前都不会运行。您不能像调用方期望的那样立即从异步操作返回值:@Nnoel然后您需要找到一种方法来避免“promise maker”,或者您需要更改框架(或者了解如何在框架中执行异步操作)Promissions的主要用途是当一个值不能立即使用时。我也建议使用async/callback,但OP说这不是一个选项-他们需要立即使用该值。@dominik…我对你的答案感到兴奋…但我不确定每个“then”中的“return”在哪里正在进行中,然后我看到了泰勒的评论,现在我完全困惑了:-(@Tyler,我的意思是,它需要等待承诺解决,然后才能继续代码的其余部分。
var promise = <<<promise maker>>>.then(function (myContent) {
    console.log("success");
}, function () {
    console.log("fail!");   
});

promise.then(function() {
  console.log("about to return");
});
<<<promise maker>>>
  .then(function(promiseData) {
    console.log('success');
    return promiseData;
  })
  .then(function(promiseData) {
    console.log('about to return');
    return promiseData;
  })
  .catch(function(err) { console.log('fail!'); })
async function getPromiseData() {
  try {
    const promiseData = await <<<promise maker>>>;
    console.log("success");
    console.log("about to return");
    return promiseData;
  } catch (err) {
    console.log("fail!");
  }
}