【问题标题】:return value from Promise来自 Promise 的返回值
【发布时间】:2016-12-17 04:14:36
【问题描述】:

考虑例子:

function returnValue () {
   return somePromise.then (
     function (someThing) {
       return {
         sucess: true,
         data: someThing
       }
     },
     function (someError) {
       return {
         sucess: false,
         data: someError
       }
     }
   )
}

Console.log (returnValue ())

我应该怎么做才能真正拥有“someThing”或“someError”?而不是一个未决的承诺?

请注意......当我在“Meteor.methods”中编写这样的代码时,它完全按照我的意愿工作,也就是说,它返回一个我返回给客户端的值,但在“Meteor.methods”之外。方法”或在客户端(浏览器,使用或不使用任何框架)中,我拥有的是一个未决的承诺。

【问题讨论】:

    标签: meteor promise synchronization return


    【解决方案1】:

    传递给.then() 的函数异步返回结果。已完成的PromisePromise value 将可用作传递函数的参数。 Console.log (returnValue ()),正如您所指出的,记录 Promise 本身,而不是 Promise value。将.then() 链接到returnValue() 调用。另外,Console.log (returnValue ()) 应该是console.log()

    let somePromise = Promise.resolve("abc");
    
    function returnValue () {
       return somePromise.then (
         function (someThing) {
           return {
             sucess: true,
             data: someThing
           }
         },
         function (someError) {
           return {
             sucess: false,
             data: someError
           }
         }
       )
    }
    
    returnValue().then(function(result) {
      console.log(result)
    })

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    相关资源
    最近更新 更多