This question already has answers here:
How to return value from an asynchronous callback function? [duplicate]
                                
                                    (3个答案)
                                
                        
                                在8个月前关闭。
            
                    
一个非常简单的问题。我将其简化为说明我的问题的最简单版本。

为什么这个原始JS返回一个promise,我如何才能使其返回“ Hello”?




let result = test()
  .then(function(result) {
     return result;
  });

alert(result);

function test(serialized) {
  return new Promise(function(resolve, reject) {
    resolve("Hello");
  });
}

最佳答案

发生的情况是您正在“更改” then方法返回的值。

then方法将始终返回承诺,即使您正在返回值,它也包装在已解析的承诺中(例如Promise.resolve('Hello')),这使您可以实现可链接性,例如,您可以调用并返回其他承诺。 then回调,他们将等待解决方案继续并解决。



  test()
      .then(function(result) {
        console.log(result);
        return result + ' world!';
      }).then(function(result2) {
        console.log(result2); // Hello world!
        return new Promise(function (resolve) { resolve('End') });
      }).then(function (result) {
         console.log(result);
      })


    function test(serialized) {
      return new Promise(function(resolve, reject) {
        resolve("Hello");
      });
    }

关于javascript - 为什么这个简单的JS promise 会返回 promise ? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56134951/

10-09 17:21
查看更多