【问题标题】:Get result from promise resolve in another async function在另一个异步函数中从 promise resolve 获取结果
【发布时间】:2017-03-29 12:31:50
【问题描述】:

我试图在第一个函数(topromise)中结束 Promise 时获得 Promise 解决结果。因此,正如您将在下面看到的那样,我正在创建另一个 Promise.resolve(pageData) ,然后尝试在我的 getpromise 函数中获取该值。

这是我的代码:

function topromise(param){
  let pageData;
  new Promise((resolve, reject)=>{
  resolve(param)
})

.then((value)=>{
  console.log(value)
  return "hola"
})

.then((value)=>{
  console.log(value)
  pageData= "bon jour"
  return getpromise(Promise.resolve(pageData))
})

}


topromise("hello")

function getpromise(value){
  .then(value=> console.log(value))
  //I want to get the pageData result from resolve
}

【问题讨论】:

  • 能否请您将 sn-p 更新为更合理的内容。目前这将归结为function toPromise(){ return Promise.resolve("bon jour") }。对于您的尝试:像这样使用pageData 是行不通的;因为异步。你已经处理了实时。如果没有承诺,您将永远不知道pageData 何时会真正包含一些价值。
  • 你确定你的getpromise方法体没问题?

标签: javascript promise


【解决方案1】:

您的topromise() 函数缺少return,而您的getpromise 函数似乎开始于方法调用的中间。

目前还不清楚您要做什么,但也许您正在做这样的事情。这是工作代码:

function topromise(param){
  let pageData;
  
  return Promise.resolve(param)
  .then((value)=>{
    console.log(value)
    return "hola"
  })
  .then((value)=>{
    console.log(value)
    pageData = "bon jour"
    return pageData;
  })
}


getpromise(topromise("hello"))

function getpromise(value){
  value
  .then(result => console.log(result))
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 2019-06-30
    • 2021-12-22
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多